Octofarm: Recomendado ¿Inicio automático de npm (bajo Linux)?

Creado en 28 abr. 2020  ·  5Comentarios  ·  Fuente: OctoFarm/OctoFarm

¿Existe un método recomendado para el inicio automático de npm después de que se completa un inicio en linux? Intenté hacer esto usando init.d y no tuve éxito.

question

Comentario más útil

Estaba usando un archivo de servicio systemd con éxito usando Ubuntu. Como afirma James, la versión más nueva viene con pm2. Con pm2, puede ejecutar pm2 startup y detectará su sistema de inicio y generará un comando para ejecutar para generar los archivos de inicio. Lo acabo de hacer y parece funcionar bastante bien.

DIVULGACIÓN COMPLETA: Nunca había oído hablar de pm2 antes de hoy, así que tuve que investigar un poco y esto es lo que encontré y lo que hice y parece que funciona.

Esto es lo que sucede cuando ejecuto 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

Y luego, después de ejecutar el comando, me dijo:

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 comentarios

muchos usan un paquete npm llamado pm2.

Puede instalar con npm install pm2 -g

Luego ejecute lo siguiente.

pm2 startup

Copie y pegue la salida que pm2 le da después de la última.

pm2 start app.js --name OctoFarm

pm2 save

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

Hay más información al respecto aquí para ti, avísame si te quedas atascado.

1.1.5 viene con pm2 como dependencia y se ejecuta con eso, espero poder habilitar los comandos de inicio en el arranque para que todo sea automático, pero aún no lo he investigado mucho.

Estaba usando un archivo de servicio systemd con éxito usando Ubuntu. Como afirma James, la versión más nueva viene con pm2. Con pm2, puede ejecutar pm2 startup y detectará su sistema de inicio y generará un comando para ejecutar para generar los archivos de inicio. Lo acabo de hacer y parece funcionar bastante bien.

DIVULGACIÓN COMPLETA: Nunca había oído hablar de pm2 antes de hoy, así que tuve que investigar un poco y esto es lo que encontré y lo que hice y parece que funciona.

Esto es lo que sucede cuando ejecuto 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

Y luego, después de ejecutar el comando, me dijo:

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

Gracias por la rápida respuesta para ambos. Intentaré esto más tarde hoy. Amo / odio los sistemas Linux, alrededor de 10 formas diferentes de hacer todo. Empecé con BSD Unix a finales de los 80.

No hay problema, dejaré esto abierto por ahora para recordarme que agregue algunas notas al README / Wiki.

Se agregaron documentos de instalación para hacer esta plataforma cruzada

¿Fue útil esta página
0 / 5 - 0 calificaciones