Почему PM2 не запускает мой процесс Node? - PullRequest
0 голосов
/ 09 января 2019

Раньше я успешно применял PM2, но не в настоящее время.

Мое приложение узла работает нормально, если я запускаю его вручную, но ничего, что я делаю, не заставляет его работать через PM2, даже если PM2 появляется , чтобы запустить его. Вот что я имею в виду:

Если я запускаю pm2 start server / index.js, ответ в терминале будет выглядеть так:

$ pm2 start server/index.js
[PM2] Spawning PM2 daemon with pm2_home=c:\pm2_system\.pm2
[PM2] PM2 Successfully daemonized
[PM2] Starting D:\Program Files\nodeApps\service-management-api\server\index.js in fork_mode (1 instance)
[PM2] Done.* 

Затем терминал распечатывает таблицу с информацией о приложении. Это не выглядит приклеенным здесь, поэтому я перечислю это:

App Name: index
id: 0
version: 1.0.0
mode: fork
pid: 8984
status: online
restart: 0
update 0s
cpu: 0% 
mem: 26.0 MB
user: ME
watching: disabled

Похоже, что процесс узла должен быть запущен. Но если я сразу введу pm2 list , это не покажет запущенных процессов. Если я ввожу индекс остановки PM2, он говорит:

$ pm2 stop index
[PM2] Spawning PM2 daemon with pm2_home=c:\pm2_system\.pm2
[PM2] PM2 Successfully daemonized
[PM2][ERROR] Process index not found

В качестве альтернативы, если я попытаюсь использовать ecosystem.config.js в командах, я получу аналогичные результаты. Вот команды, которые попробовали:

pm2 reload ecosystem.config.js
pm2 start ecosystem.config.js

Пример результата выполнения этих команд:

$ pm2 start ecosystem.config.js
[PM2] Spawning PM2 daemon with pm2_home=c:\pm2_system\.pm2
[PM2] PM2 Successfully daemonized
[PM2][WARN] Applications sm_api not running, starting...
[PM2] App [sm_api] launched (2 instances)

И CLI печатает таблицу с двумя экземплярами со статусом «онлайн» и просмотром «включено». И все же приложение не запускается (при тестировании в браузере) и «pm2 show» возвращает:

[PM2] Spawning PM2 daemon with pm2_home=c:\pm2_system\.pm2
[PM2] PM2 Successfully daemonized
[PM2][WARN] <app name> doesn't exist

Есть какие-нибудь подсказки, что пошло не так с моим pm2?

Вот мой файл ecosystem.config.js:

module.exports = {
  apps : [{
    name: 'sm_api',
    script: 'server/index.js',
    "log_date_format"  : "YYYY-MM-DD HH:mm Z",

    // Options reference: https://pm2.io/doc/en/runtime/reference/ecosystem-file/
    args: 'one two',
    instances: 'max',
    error_file : "C:\\pm2_system\\.pm2\\logs\\sm-api-error",
    out_file: "C:\\pm2_system\\.pm2\\logs\\sm-api-out",
    autorestart: true,
    watch: "../",
    max_restarts: 10,
    max_memory_restart: '1G',
    env: {
      NODE_ENV: 'development'
    },
    env_production: {
      NODE_ENV: 'production'
    },
    exec_mode: 'cluster'
  }],
};

Запуск в среде Windows Server 2012. Обратите внимание, что я собираюсь добавить пакет pm2-windows-service после того, как я получу работу pm2.

Ответы [ 2 ]

0 голосов
/ 18 января 2019

В качестве обходного пути я использовал следующее:

pm2 start --no-daemon app.js

0 голосов
/ 14 января 2019

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

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

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

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

...