Node.js
Exécution de node.js en tant que service
Recherche…
Introduction
Contrairement à de nombreux serveurs Web, Node n'est pas installé en tant que service par défaut. Mais en production, il est préférable de le faire fonctionner comme un démon, géré par un système init.
Node.js en tant que systemd dæmon
systemd est le système d'initialisation de facto dans la plupart des distributions Linux. Une fois que Node a été configuré pour s'exécuter avec systemd, il est possible d'utiliser la commande de service
pour le gérer.
Tout d'abord, il faut un fichier de configuration, créons-le. Pour les distributions basées sur Debian, ce sera dans /etc/systemd/system/node.service
[Unit]
Description=My super nodejs app
[Service]
# set the working directory to have consistent relative paths
WorkingDirectory=/var/www/app
# start the server file (file is relative to WorkingDirectory here)
ExecStart=/usr/bin/node serverCluster.js
# if process crashes, always try to restart
Restart=always
# let 500ms between the crash and the restart
RestartSec=500ms
# send log tot syslog here (it doesn't compete with other log config in the app itself)
StandardOutput=syslog
StandardError=syslog
# nodejs process name in syslog
SyslogIdentifier=nodejs
# user and group starting the app
User=www-data
Group=www-data
# set the environement (dev, prod…)
Environment=NODE_ENV=production
[Install]
# start node at multi user system level (= sysVinit runlevel 3)
WantedBy=multi-user.target
Il est maintenant possible de démarrer, d'arrêter et de redémarrer respectivement l'application avec:
service node start
service node stop
service node restart
Pour que systemd démarre automatiquement le noeud au démarrage, tapez simplement: systemctl enable node
.
C'est tout, le noeud fonctionne désormais comme un dæmon.