Octofarm: Início automático recomendado do npm (no Linux)?

Criado em 28 abr. 2020  ·  5Comentários  ·  Fonte: OctoFarm/OctoFarm

Existe um método recomendado para iniciar automaticamente o npm após a conclusão da inicialização no Linux. Tentei fazer isso usando init.d e não tive sucesso.

question

Comentários muito úteis

Eu estava usando um arquivo de serviço systemd com sucesso no Ubuntu. Como afirma James, a versão mais recente vem com pm2. Com pm2, você pode executar pm2 startup e ele detectará seu sistema init e exibirá um comando para executar para gerar os arquivos de inicialização. Acabei de fazer isso e parece funcionar muito bem.

DIVULGAÇÃO COMPLETA: Eu nunca tinha ouvido falar do pm2 antes de hoje, então tive que fazer uma pequena pesquisa e isso é o que eu descobri e fiz e parece funcionar.

Aqui está o que acontece quando executo 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

E então, depois de executar o comando, ele me disse:

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

Todos 5 comentários

muitos usam um pacote npm chamado pm2.

Você pode instalar com npm install pm2 -g

Em seguida, execute o seguinte.

pm2 startup

Copie e cole a saída que pm2 fornece após a última.

pm2 start app.js --name OctoFarm

pm2 save

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

Há mais informações sobre isso para você. Avise-me se tiver dúvidas.

1.1.5 está vindo com pm2 como uma dependência e roda usando isso, espero ser capaz de habilitar os comandos de inicialização na inicialização, então é tudo automático, mas eu não olhei muito para isso ainda.

Eu estava usando um arquivo de serviço systemd com sucesso no Ubuntu. Como afirma James, a versão mais recente vem com pm2. Com pm2, você pode executar pm2 startup e ele detectará seu sistema init e exibirá um comando para executar para gerar os arquivos de inicialização. Acabei de fazer isso e parece funcionar muito bem.

DIVULGAÇÃO COMPLETA: Eu nunca tinha ouvido falar do pm2 antes de hoje, então tive que fazer uma pequena pesquisa e isso é o que eu descobri e fiz e parece funcionar.

Aqui está o que acontece quando executo 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

E então, depois de executar o comando, ele me disse:

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

Obrigado pela resposta rápida para vocês dois. Vou tentar isso mais tarde hoje. Eu amo / odeio sistemas Linux - cerca de 10 maneiras diferentes de fazer tudo. Comecei com o BSD Unix no final dos anos 1980.

Sem problemas, vou deixar aberto por agora para me lembrar de adicionar algumas notas ao README / Wiki

Documentos de instalação adicionados para fazer esta plataforma cruzada

Esta página foi útil?
0 / 5 - 0 avaliações

Questões relacionadas

Nomad965 picture Nomad965  ·  15Comentários

gmccauley picture gmccauley  ·  3Comentários

tophattwaffle picture tophattwaffle  ·  10Comentários

Polloman93 picture Polloman93  ·  6Comentários

juangonzalezpr picture juangonzalezpr  ·  10Comentários