Node.js
Node.js als Dienst ausführen
Suche…
Einführung
Im Gegensatz zu vielen anderen Webservern wird Node nicht als Standarddienst installiert. In der Produktion ist es jedoch besser, es als dæmon laufen zu lassen, das von einem init-System verwaltet wird.
Node.js als systemd dæmon
systemd ist das De-facto- Init-System in den meisten Linux-Distributionen. Nachdem der Knoten für die Ausführung mit systemd konfiguriert wurde, können Sie ihn mit dem service
verwalten.
Erstens benötigt es eine Konfigurationsdatei, erstellen wir sie. Für Debian-basierte Distributionen ist dies in /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
Es ist jetzt möglich, die App zu starten, zu stoppen und erneut zu starten:
service node start
service node stop
service node restart
Um systemd systemctl enable node
beim Booten automatisch zu starten, geben Sie systemctl enable node
: systemctl enable node
.
Das ist alles, Knoten läuft jetzt als dæmon.