2015-09-24 2 views
6

Я использую pm2 для запуска процесса node.js, и я хотел бы, чтобы этот процесс запускался автоматически при загрузке системы (Ubuntu 14.04 на процессоре Intel Atom). Я следовал инструкциям на pm2 web site, но безуспешно. Мой dump.pm2 представляется правильным, но демон pm2 никогда не запускается. Я попробовал оба варианта ubuntu и linux до pm2 startup, а также автоопределение, как с указанным пользователем, так и без него. Файлы (ссылки) S20pm2-init.sh были созданы в /etc/rc[2-5].d, но ничего не началось. Я не могу найти какие-либо явные сообщения об ошибках в системном журнале.Ubuntu 14.04 - запуск в pm2 не начинается после перезагрузки

Любые идеи?

Редактировать добавить

Я считаю, что service pm2-init.sh start запускает демон правильно, при запуске из моей учетной записи входа, который является таким же, как определено USER= в файле /etc/init.d/pm2-init.sh. Я убедился, что определение PM2_HOME в этом файле указывает на правильное место. Тем не менее, он по-прежнему не запускается при загрузке системы!

+2

Я использую pm2 на Ubuntu 15.04, я пробовал все возможные решения, чтобы начать сохранение, но ничего при перезагрузке моего сервера, пожалуйста, совет? –

ответ

2

Ну, я думаю, что это сработало, во всяком случае. Первоначально я пытался запустить как системный пользователь (без оболочки входа) под названием node-red, выполняющий одноименное приложение узла, а когда это не сработало, я попробовал начать с обычного пользователя max. После некоторого вождения с вещами он внезапно начал работать, , но на этом медленном процессоре Atom, приложение узла запускается всего через пару минут после появления рабочего стола.

Чтобы заставить его работать под системным пользователем: сначала зарегистрировался как max, я удалил все задания pm2 и запустил pm2 save, чтобы создать пустой файл дампа. Затем я сделал:

sudo npm install [email protected] -g 
pm2 update 

Чтобы получить последнюю версию, в случае, если это поможет. Я переехал из 0.14.7 к 0.15.7

Тогда я побежал

sudo su -c "env PATH=$PATH:/usr/bin pm2 startup ubuntu -u node-red" 

и редактируются /etc/init.d/pm2-init.sh коррекции строку, которая устанавливает каталог PM2_HOME в домашней директории node-red:

export PM2_HOME="/home/node-red/.pm2" 

Тогда Я стал регистрационной версией пользователя node-red, изменен на домашний каталог этого пользователя, начал мою работу и сохранил список процессов:

sudo -H -u node-red bash -l 
cd 
pm2 start /usr/local/bin/node-red --node-args="--max-old-space-size=128" -- -v -u /home/node-red/.node-red 
pm2 save 

Затем я вышел из оболочки node-red, перезагрузился и (через минуту или около того) было приложение, работающее прекрасно!

Обратите внимание, что это был номер ubuntu 14.04, в котором используется система /upstart. Более поздние версии, я думаю, используют подход systemd и могут нуждаться в параметре ubuntu, измененном на systemd при создании сценария запуска.

Я все еще не совсем уверен, почему это не сработало должным образом в первый раз.

+0

Эта строка здесь 'export PM2_HOME ="/home/node-red/.pm2 "' была исправлена ​​для меня. это был «экспорт PM2_HOME =»/root/.pm2 »по какой-то причине – neelabh

5

Для запуска пм2 работать, есть критическая команда утопает в documentation и here.

Вы должны 1) начать все процессы, 2) создать сценарий запуска, и 3) запустить pm2 save

Ссылка на @lazlojuly's answer here.

+0

Это отлично работает для меня - без каких-либо пользовательских взломов или настроек сценария запуска в моей капли Digital Ocean Ubuntu. – Red

+0

+1 Сумасшедший, это не включено в их [загрузочную документацию] (http://pm2.keymetrics.io/docs/usage/quick-start/) – ow3n

0

Я искал работу вокруг уйти, пока, пока я не пришел к этому решению

после выполнения PM2 сохранить

  1. этого файла будет создан -> /etc/init.d/pm2-init .sh
  2. затем на вкладке хрон @reboot корень /etc/init.d/pm2-init.sh начать этот эквивалент запуска на ЦМД, но срабатывает при перезагрузке

теперь это работает отлично для меня

Смежные вопросы