crontab
funktioniert bei mir unter CentOS x86 6.5 nicht. @reboot scheint nicht zu funktionieren.
Endlich habe ich diese Lösung:
Bearbeiten: /etc/rc.local
sudo vi /etc/rc.local
Fügen Sie diese Zeile am Ende der Datei hinzu. Ändern Sie USER_NAME
und PATH_TO_PROJECT
zu Ihren eigenen. NODE_ENV=production
bedeutet, dass die App im Produktionsmodus ausgeführt wird. Sie können weitere Zeilen hinzufügen, wenn Sie mehr als eine node.js-App ausführen müssen.
su - USER_NAME -c "NODE_ENV=production /usr/local/bin/forever start /PATH_TO_PROJECT/app.js"
Nicht NODE_ENV
in einer separaten Zeile festlegen , Ihre App wird weiterhin im Entwicklungsmodus ausgeführt, da dies für immer nicht möglich ist NODE_ENV
.
# WRONG!
su - USER_NAME -c "export NODE_ENV=production"
Speichern und beenden Sie vi (drücken Sie ESC : w q return
). Sie können versuchen, Ihren Server neu zu starten. Nach dem Neustart Ihres Servers sollte Ihre node.js-App automatisch ausgeführt werden, auch wenn Sie sich nicht über ssh remote bei einem Konto anmelden.
Sie sollten die NODE_ENV
Umgebung besser in Ihre Shell einfügen. NODE_ENV
wird automatisch festgelegt, wenn sich Ihr Konto USER_NAME
anmeldet.
echo export NODE_ENV=production >> ~/.bash_profile
So können Sie Befehle wie für immer stoppen / starten /PATH_TO_PROJECT/app.js
über ssh ausführen, ohne sie NODE_ENV
erneut einzustellen .