2016-06-04 15 views
0

Ich habe alles versucht. Selbst versucht es mit dem Hinzufügen des Fierce-Start-Code in /etc/rc.local hat nicht funktioniert.Knoten beim Systemneustart konnte nicht gestartet werden Ubuntu Crontab

Wenn ich das Schlüsselwort @reboot in /etc/rc.local verwende, heißt es @reboot kann nicht gefunden werden.

Also ging ich wieder zu verwenden crontab Hier ist meine Crontab-Skript. Alle anderen Crontabs funktionieren außer dem Neustart. In syslog, heißt es

Jun 4 09:51:12 ip-172-31-28-35 /usr/sbin/irqbalance: Balancing is ineffective on systems with a single cache domain. Shutting down 
Jun 4 09:51:12 ip-172-31-28-35 cron[959]: (CRON) STARTUP (fork ok) 
Jun 4 09:51:12 ip-172-31-28-35 cron[959]: (CRON) INFO (Running @reboot jobs) 
Jun 4 09:51:12 ip-172-31-28-35 CRON[1005]: (ubuntu) CMD (/usr/bin/sudo -u ubuntu /usr/local/bin/forever start home/ubuntu/chat2/index.js) 

die zeigt, dass der Neustart-Befehl in meiner cron Tab funktioniert, aber aus irgendeinem Grunde immer beginnt, noch nicht Knoten. Nach dem Neustart lief ich für immer Liste und es heißt No forever processes running

Ich nehme an, das Problem ist irgendwie mit dem Knoten und für immer Pfade. Ich bin neu und weiß nicht, welcher genaue Pfad für diese Anweisung in Crontab verwendet werden soll.

enter image description here

Ich habe auch versucht, die folgenden:

@reboot /usr/local/bin/forever start -c /usr/local/bin/node /home/ubuntu/chat2/index.js 

und

@reboot /usr/local/bin/forever start /home/ubuntu/chat2/index.js 

Keine von diesen arbeiten.

Wenn ich which forever laufen, sagt es

/usr/local/bin/forever 

Wenn ich which node laufen sie sagt

/usr/local/bin/node 

Wenn ich den vollständigen Pfad meiner index.js App-Datei zu erhalten, von readlink -f index.js in meinem chat2 tun Verzeichnis es sagt

/home/ubuntu/chat2/index.js 

Jungs helfen mir. Ich möchte diesen Befehl nur bei jedem Systemneustart ausführen. Ich möchte meine Knoten-App starten. Die folgende Zeile funktioniert perfekt, wenn ich manuell zu chat2 directo cd. Ich möchte, dass dies beim Neustart selbst funktioniert.

forever -m5000 -w start index.js 

Bitte helfen, danke!

Antwort

0

Sie können einen Dienst mit Ihrem Code erstellen, anstatt cron zu verwenden. Eigentlich bevorzuge ich das, weil Sie es jederzeit anhalten oder starten können und Sie es auch beim Systemneustart oder Start ausführen können. So

:

1- Erstellen Sie einen Dienst in /etc/init.d/name_of_file

#!/bin/bash 
#/etc/init.d/name_of_file 
### BEGIN INIT INFO 
# Provides:   name 
# Required-Start: $syslog 
# Required-Stop:  $syslog 
# Default-Start:  2 3 4 5 
# Default-Stop:  0 1 6 
# Short-Description: add service 
# Description: 
# 
### END INIT INFO 

# Some things that run always 

case "$1" in 
    start) 
    echo "Starting app_name " 
    touch /var/lock/app_name 
    cd /where/is/your/file 
    node index.js & 
    ;; 
    stop) 
    echo " Stopping " 
    rm /var/lock/app_name 
    sudo pkill -f node 
    ;; 
    status) 
    if [ -e /var/lock/app_name ] 
    then 
     echo "app_name is running" 
    else 
     echo "app_name is not running" 
    fi 
    ;; 
    *) 
    echo "Usage:service app_name{start|stop|status}" 
    exit 1 
    ;; 
esac 

exit 0 

So nach, dass Sie einen Dienst erstellt haben Sie für die Ausführung von NodeJS Anwendung.

Sie müssen die Erlaubnis, dieses Skript ausgeführt

chmod +x /etc/init.d/app_name 

Nun ist die einzige, was Sie tun müssen, dies beim Booten ausgeführt werden soll konfigurieren.

Run:

sudo update-rc.d app_name defaults 

Und dann jedes Mal, wenn Sie Computer neu starten, wird der Dienst selbst gestartet werden.

0

vorschlagen stdout/stderr umleiten zu debuggen Datei, warum Ihr Skript in crontab nicht:

/usr/local/bin/für immer starten -c/usr/local/bin/node/home/ubuntu/chat2 /index.js> /tmp/forever.log 2>

Einzelheiten finden Sie nach dem Neustart in der Protokolldatei.

Sie können auch versuchen pm2, wie für immer, aber Unterstützung Build System Start Skript generieren, und startet Ihre Anwendungen nach dem Neustart.

Verwandte Themen