Почему PM2 работает на одном сервере, а на другом - нет?

У нас есть два экземпляра нашего приложения Node-Express: один для разработки и один для производства. Мы внедряем диспетчер процессов PM2. Это для среды Windows Server 2012.

По какой-то непонятной причине PM2 (с pm2-windows-service) работал нормально при настройке в нашей среде разработки, но даже не запускал node в нашей среде Prod. Что может быть причиной?

  • Файлы журнала не показывают ничего полезного
  • Если вы посмотрите на мой связанный с этим вопрос, вы можете видеть, что PM2 кажется запускающим узлом, но это не так (или он сразу дает сбой).
  • Все, что мы можем заключить, это некоторая разница в настройках между этими двумя серверами. Есть какие-нибудь подсказки, какая разница в настройках может приводить к такому отказу PM2?

Это связано с более конкретным вопросом У меня есть сведения о проблемах, с которыми мы сталкиваемся при внедрении PM2.

Спасибо!


person mike_butak    schedule 10.01.2019    source источник


Ответы (2)


Хорошо, я получил ответ после публикации проблемы на странице вопросов pm2 github.

Поделитесь им здесь на случай, если кто-то еще окажется в такой ситуации:

https://github.com/Unitech/pm2/issues/4113

(в основном pm2 3.2.5 представил ошибку, которая вызывает эту проблему в Windows. Моя установка QA была 3.2.4. Проблема была решена путем возврата к 3.2.4. Простой процесс, см. инструкции по ссылке выше.)

person mike_butak    schedule 14.01.2019

Это может быть не совсем проблема pm2, немного больше npm. На сервере, где pm2 не работает, попробуйте эту команду в PowerShell:

Get-Command pm2

Возвращает ли он правильную версию (не 0.0.0)? В противном случае возникает проблема с установкой этого пакета, поэтому, как вариант, его можно установить вручную. Также в прошлом месяце мы задали знакомый вопрос в том билете:

https://github.com/Unitech/pm2/issues/3964

Как описано в заявке выше, вы можете попробовать проверить другой пакет npm со знакомыми проблемами:

npm install mocha -g

И это попытаться достичь мокко-кли

person Eugene Rotar    schedule 10.01.2019
comment
Привет @Eugenio R, Большое спасибо за ваш ответ. Я попробовал команду PowerShell. Он вернул тип команды (приложение), имя (pm2.cmd) и имя модуля (-blank-). Никакого упоминания о версии. Не знаете, что это значит? Кроме того, я последовал совету из тикета на github, без проблем установил другой пакет npm (depcheck) и успешно запустил его. - person mike_butak; 11.01.2019
comment
Хорошо, я вижу. Что ж, похоже, что pm2 действительно странно работает в Windows IS (никогда не слышал о проблемах в Linux). Возможно, имеет смысл создать билет прямо на github для pm2 (github.com/Unitech/pm2/issues), чтобы они быстрее смогли помочь - person Eugene Rotar; 11.01.2019
comment
Спасибо @Eugenio R. Я отправил запрос. - person mike_butak; 11.01.2019
comment
Ваше предложение было хорошим. После публикации проблемы на github я узнал источник проблемы. Недавно представленный PM2 v 3.2.5 содержит ошибку, которая вызывает сбой PM2 в Windows. Решением было вернуться к 3.2.4. Проблема, открытая на github: github.com/Unitech/pm2/issues/4113 Спасибо за ваш вклад! кому: @Eugenio R - person mike_butak; 14.01.2019