Octofarm: Рекомендуемый автоматический запуск npm (под linux)?

Созданный на 28 апр. 2020  ·  5Комментарии  ·  Источник: OctoFarm/OctoFarm

Есть ли рекомендуемый метод автозапуска npm после завершения загрузки под Linux. Я попытался сделать это с помощью init.d, но безуспешно.

question

Самый полезный комментарий

Я успешно использовал служебный файл systemd в Ubuntu. Как заявляет Джеймс, новая версия идет с pm2. С pm2 вы можете запустить pm2 startup и он обнаружит вашу систему инициализации и выведет команду для запуска для генерации файлов запуска. Я только что это сделал, и, кажется, работает неплохо.

ПОЛНОЕ РАСКРЫТИЕ: до сегодняшнего дня я даже не слышал о pm2, поэтому мне пришлось провести небольшое исследование, и это то, что я нашел и что я сделал, и, похоже, это сработало.

Вот что происходит, когда я запускаю pm2 startup

ubuntu<strong i="10">@octofarm</strong>:~$ OctoFarm/node_modules/pm2/bin/pm2 startup
[PM2] Init System found: systemd
ubuntu
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/bin /home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu

А затем после того, как я запустил команду, она сказала мне:

ubuntu<strong i="14">@octofarm</strong>:~$ sudo env PATH=$PATH:/usr/bin /home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu
[PM2] Init System found: systemd
Platform systemd
Template
[Unit]
Description=PM2 process manager
Documentation=https://pm2.keymetrics.io/
After=network.target

[Service]
Type=forking
User=ubuntu
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PM2_HOME=/home/ubuntu/.pm2
PIDFile=/home/ubuntu/.pm2/pm2.pid
Restart=on-failure

ExecStart=/home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 resurrect
ExecReload=/home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 reload all
ExecStop=/home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 kill

[Install]
WantedBy=multi-user.target

Target path
/etc/systemd/system/pm2-ubuntu.service
Command list
[ 'systemctl enable pm2-ubuntu' ]
[PM2] Writing init configuration in /etc/systemd/system/pm2-ubuntu.service
[PM2] Making script booting at startup...
[PM2] [-] Executing: systemctl enable pm2-ubuntu...
Created symlink /etc/systemd/system/multi-user.target.wants/pm2-ubuntu.service → /etc/systemd/system/pm2-ubuntu.service.
[PM2] [v] Command successfully executed.
+---------------------------------------+
[PM2] Freeze a process list on reboot via:
$ pm2 save

[PM2] Remove init script via:
$ pm2 unstartup systemd

Все 5 Комментарий

многие используют пакет npm под названием pm2.

Вы можете установить с помощью npm install pm2 -g

Затем запустите следующее.

pm2 startup

Скопируйте и вставьте вывод pm2 после последнего.

pm2 start app.js --name OctoFarm

pm2 save

https://pm2.keymetrics.io/docs/usage/startup/

Здесь есть дополнительная информация об этом, дайте мне знать, если вы застрянете.

1.1.5 поставляется с pm2 в качестве зависимости, и он запускается с его использованием, я надеюсь, что смогу включить команды запуска при загрузке, чтобы все было автоматически, но я еще не особо разбирался в этом.

Я успешно использовал служебный файл systemd в Ubuntu. Как заявляет Джеймс, новая версия идет с pm2. С pm2 вы можете запустить pm2 startup и он обнаружит вашу систему инициализации и выведет команду для запуска для генерации файлов запуска. Я только что это сделал, и, кажется, работает неплохо.

ПОЛНОЕ РАСКРЫТИЕ: до сегодняшнего дня я даже не слышал о pm2, поэтому мне пришлось провести небольшое исследование, и это то, что я нашел и что я сделал, и, похоже, это сработало.

Вот что происходит, когда я запускаю pm2 startup

ubuntu<strong i="10">@octofarm</strong>:~$ OctoFarm/node_modules/pm2/bin/pm2 startup
[PM2] Init System found: systemd
ubuntu
[PM2] To setup the Startup Script, copy/paste the following command:
sudo env PATH=$PATH:/usr/bin /home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu

А затем после того, как я запустил команду, она сказала мне:

ubuntu<strong i="14">@octofarm</strong>:~$ sudo env PATH=$PATH:/usr/bin /home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 startup systemd -u ubuntu --hp /home/ubuntu
[PM2] Init System found: systemd
Platform systemd
Template
[Unit]
Description=PM2 process manager
Documentation=https://pm2.keymetrics.io/
After=network.target

[Service]
Type=forking
User=ubuntu
LimitNOFILE=infinity
LimitNPROC=infinity
LimitCORE=infinity
Environment=PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/usr/bin:/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin
Environment=PM2_HOME=/home/ubuntu/.pm2
PIDFile=/home/ubuntu/.pm2/pm2.pid
Restart=on-failure

ExecStart=/home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 resurrect
ExecReload=/home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 reload all
ExecStop=/home/ubuntu/OctoFarm/node_modules/pm2/bin/pm2 kill

[Install]
WantedBy=multi-user.target

Target path
/etc/systemd/system/pm2-ubuntu.service
Command list
[ 'systemctl enable pm2-ubuntu' ]
[PM2] Writing init configuration in /etc/systemd/system/pm2-ubuntu.service
[PM2] Making script booting at startup...
[PM2] [-] Executing: systemctl enable pm2-ubuntu...
Created symlink /etc/systemd/system/multi-user.target.wants/pm2-ubuntu.service → /etc/systemd/system/pm2-ubuntu.service.
[PM2] [v] Command successfully executed.
+---------------------------------------+
[PM2] Freeze a process list on reboot via:
$ pm2 save

[PM2] Remove init script via:
$ pm2 unstartup systemd

Спасибо за быстрый ответ вам обоим. Попробую сегодня позже. Я люблю / ненавижу системы Linux - около 10 различных способов сделать все. Я начал с BSD Unix еще в конце 1980-х.

Нет проблем, я пока оставлю это открытым, чтобы напомнить мне добавить несколько примечаний в README / Wiki.

Добавлены установочные документы для кроссплатформенности.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги