Почему PM2 работает на одном сервере, а не на другом?
У нас есть два экземпляра нашего приложения Node-Express: один для разработки и один для производства. Мы внедряем менеджер процессов PM2. Это для среды Windows Server 2012.
По какой-то непонятной причине PM2 (с pm2-windows-service) работал нормально, когда был настроен в нашей среде разработки, но даже не запускал узел в нашей среде Prod. Что может быть причиной?
- Лог-файлы не показывают ничего полезного
- Если вы посмотрите на мой связанный вопрос, вы увидите, что PM2, кажется, запускает узел, но не является (или он мгновенно падает).
- Мы можем сделать вывод, что между этими двумя серверами есть некоторые различия в настройках. Любая подсказка, какая разница в настройках может вызвать сбой PM2, как это?
Это связано с более конкретным вопросом, который у меня есть о проблемах, связанных с реализацией PM2.
Спасибо!
2 ответа
Хорошо, я получил ответ после публикации проблемы на странице вопросов pm2 github.
Разделите это здесь в случае, если кто-то еще оказывается в этой ситуации:
https://github.com/Unitech/pm2/issues/4113
(В основном, в pm2 3.2.5 появилась ошибка, которая приводила к этой проблеме в Windows. Моя установка QA была 3.2.4. Проблема была решена путем возврата к 3.2.4. Простой процесс, см. инструкции по ссылке выше.)
Это может быть не совсем проблема pm2, чуть больше npm. На сервере, где pm2 не работает, попробуйте эту команду в PowerShell:
Get-Command pm2
Возвращает ли верную версию (не 0.0.0)? Если нет, возникает проблема с установкой этого пакета, поэтому в качестве опции можно установить его вручную. Также мы задали знакомый вопрос в этом билете в прошлом месяце:
https://github.com/Unitech/pm2/issues/3964
Как описано в билете выше, вы можете попробовать проверить другой пакет npm со знакомыми проблемами:
npm install mocha -g
И что попробуйте достичь мокко-кли