David Cunningham Ответов: 2

Pm2 перезапись dump.pm2 при перезапуске


Я работаю в Centos 7, пытаюсь получить node.js приложение для автоматического запуска при загрузке.

Я использую PM2 для этого, и все кажется прекрасным, пока я не перезагрузлю сервер, после чего файл dump.pm2 перезаписывается и становится пустым.

Есть идеи?

Что я уже пробовал:

Я не могу удалить РМ2 процесс"и" pm2 воскрешает " в свое удовольствие, пока система работает, но если я перезапущу сервер, он выйдет из строя.

В качестве теста я сделал копию файла dump.pm2 и перезагрузил сервер. файл dump.pm2 был пуст после перезагрузки, но я восстановил свою резервную копию, после чего команда "pm2 resurrect" успешно запустила мой список приложений.

2 Ответов

Рейтинг:
16

David Cunningham

Похоже, что в текущей реализации pm2 есть ошибка.

Ошибка появляется при попытке запустить pm2 в учетной записи, не являющейся корневой. Каким-то образом во время загрузки и во время загрузки pm2 он, по-видимому, проверяет неправильную папку на наличие файла dump.pm2 (который содержит нужный список приложений и параметры). Когда он не находит файл, он отмечает, что ему нужно его создать. Позже, после переключения в соответствующую учетную запись пользователя, он записывает пустой файл dump.pm2, который перезаписывает ранее созданный.

Это представление GitHub идентифицирует проблему:

https://github.com/Unitech/PM2/pull/1120/files?diff=split

Вы также можете временно устранить эту проблему, сделав файл dump.pm2 неизменяемым после сохранения нужного списка загрузочных приложений

т.е.

pm2 save                        // store current running application list to dump.pm2
su                              // switch to root account
cd /home/{pm2useraccount}/.pm2  // move to .pm2 folder for user in which pm2 is running
chattr +i dump.pm2              // mark dump.pm2 file as immutable.


Рейтинг:
0

mariossavva

У меня была такая же проблема на Raspberry Pi под управлением Debian. Пожалуйста, посмотрите на следующее решение:

Запуск не запускает демон pm2 и сохраненный процесс · проблема #1055 · Unitech/pm2 · GitHub[^]

Похоже, вам нужно будет прокомментировать следующую строку:

#super $PM2 dump


Эта строка находится в функции stop() внутри /etc/init.d/pm2-init.sh файл.

Надеюсь, это поможет.