Octofarm: Recommandé Démarrage automatique de npm (sous linux) ?

Créé le 28 avr. 2020  ·  5Commentaires  ·  Source: OctoFarm/OctoFarm

Existe-t-il une méthode recommandée pour le démarrage automatique de npm une fois le démarrage terminé sous Linux. J'ai essayé de le faire en utilisant init.d et je n'ai pas eu de succès.

question

Commentaire le plus utile

J'utilisais un fichier de service systemd avec succès avec Ubuntu. Comme le déclare James, la nouvelle version est livrée avec pm2. Avec pm2, vous pouvez exécuter pm2 startup et il détectera votre système d'initialisation et produira une commande à exécuter pour générer les fichiers de démarrage. Je viens de le faire et ça a l'air de bien fonctionner.

DIVULGATION COMPLÈTE : Je n'avais même jamais entendu parler de pm2 avant aujourd'hui, j'ai donc dû faire une petite recherche et c'est ce que j'ai trouvé et ce que j'ai fait et cela semble fonctionner.

Voici ce qui se passe lorsque je lance 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

Et puis après avoir exécuté la commande, il m'a dit:

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

Tous les 5 commentaires

beaucoup utilisent un package npm appelé pm2.

Vous pouvez installer avec npm install pm2 -g

Ensuite, exécutez ce qui suit.

pm2 startup

Copiez et collez la sortie que pm2 vous donne après cette dernière.

pm2 start app.js --name OctoFarm

pm2 save

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

Il y a plus d'informations à ce sujet ici pour vous, faites-moi savoir si vous êtes bloqué.

1.1.5 est livré avec pm2 en tant que dépendance et il fonctionne en utilisant cela, j'espère pouvoir activer les commandes de démarrage au démarrage, donc tout est automatique, mais je n'y ai pas encore beaucoup réfléchi.

J'utilisais un fichier de service systemd avec succès avec Ubuntu. Comme le déclare James, la nouvelle version est livrée avec pm2. Avec pm2, vous pouvez exécuter pm2 startup et il détectera votre système d'initialisation et produira une commande à exécuter pour générer les fichiers de démarrage. Je viens de le faire et ça a l'air de bien fonctionner.

DIVULGATION COMPLÈTE : Je n'avais même jamais entendu parler de pm2 avant aujourd'hui, j'ai donc dû faire une petite recherche et c'est ce que j'ai trouvé et ce que j'ai fait et cela semble fonctionner.

Voici ce qui se passe lorsque je lance 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

Et puis après avoir exécuté la commande, il m'a dit:

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

Merci pour la réponse rapide à vous deux. J'essaierai plus tard dans la journée. J'aime/déteste les systèmes Linux - environ 10 façons différentes de tout faire. J'ai commencé avec BSD Unix à la fin des années 80.

Pas de problème, je vais laisser cela ouvert pour le moment pour me rappeler d'ajouter quelques notes au README/Wiki

Documents d'installation ajoutés pour faire cette plate-forme croisée

Cette page vous a été utile?
0 / 5 - 0 notes

Questions connexes

NotExpectedYet picture NotExpectedYet  ·  27Commentaires

tophattwaffle picture tophattwaffle  ·  10Commentaires

gmccauley picture gmccauley  ·  3Commentaires

juangonzalezpr picture juangonzalezpr  ·  10Commentaires

TomKamin1 picture TomKamin1  ·  18Commentaires