Интересно, как pm2 позволяет моему коду экспресс-запуска работать без изменений в параллельных процессах. Когда я пытаюсь вручную запустить другой экземпляр моего экспресс-приложения, слушая, например, порт 3000, я всегда получаю сообщение об ошибке, порт уже используется.
Изменяет ли pm2 код js, который запускается для вставки некоторых твиков в середину, или он эмулирует какую-то виртуальную машину, а затем выставляет миру только один порт процесса pm2? Что происходит за кулисами?