Réponse de 2016 : presque toutes les distributions Linux sont livrées avec systemd, ce qui signifie que pour toujours, monit, PM2, etc. ne sont plus nécessaires - votre système d'exploitation gère déjà ces tâches .
Créez un myapp.service
fichier (en remplaçant 'myapp' par le nom de votre application, évidemment):
[Unit]
Description=My app
[Service]
ExecStart=/var/www/myapp/app.js
Restart=always
User=nobody
# Note Debian/Ubuntu uses 'nogroup', RHEL/Fedora uses 'nobody'
Group=nobody
Environment=PATH=/usr/bin:/usr/local/bin
Environment=NODE_ENV=production
WorkingDirectory=/var/www/myapp
[Install]
WantedBy=multi-user.target
Notez que si vous êtes nouveau sur Unix: /var/www/myapp/app.js
devrait avoir #!/usr/bin/env node
sur la toute première ligne.
Copiez votre fichier de service dans le /etc/systemd/system
dossier.
Parlez à systemd du nouveau service avec systemctl daemon-reload
.
Commencez avec systemctl start myapp
.
Activez-le pour démarrer au démarrage avec systemctl enable myapp
.
Voir les journaux avec journalctl -u myapp
Ceci est tiré de Comment nous déployons les applications de nœuds sur Linux, édition 2018 , qui comprend également des commandes pour générer un AWS / DigitalOcean / Azure CloudConfig pour construire des serveurs Linux / nœuds (y compris le .service
fichier).