Starten Sie Node.js App beim Booten

8

Ich arbeite an einem Raspberry Pi, auf dem Raspbain läuft und eine Node.js-App ausführt, um zu versuchen, dass es startet, wenn die Pi bootet. Ich habe ein paar Beispiele gefunden, aber ich kann es nicht funktionieren sehen. Mein aktueller Code ist:

%Vor%

Ich habe dies im Ordner etc / init.d, ran chmod +x /etc/init.d/MyApp , ich kann es manuell ausführen, dann starte ich sudo update-rc.d MyApp defaults , reboot und das Skript läuft nie. Ich habe mir verschiedene Beispiele angeschaut, Anpassungen vorgenommen und immer noch kein Glück.

Jede Hilfe wäre willkommen.

    
user2650875 04.02.2014, 03:14
quelle

3 Antworten

3

Wenn Sie ein vorkompiliertes Pi-Release verwenden, wie 0.10 .24 , möglicherweise tritt ein PATH-Problem auf.

Sie können entweder den vollständigen Pfad zum Knoten binary als Teil des Befehls start angeben oder sicherstellen, dass der Pfad zu den Knotenbinärdateien festgelegt wird, bevor /etc/init.d/MyApp ausgeführt wird. Ich hatte das gleiche Problem und versuchte beides mit Erfolg. Außerdem funktioniert der Befehl stop , wie Sie ihn haben, möglicherweise nicht.

%Vor%

Wenn Sie sudo node verwenden möchten, können Sie PATH mit Defaults secure_path zu sudo visudo hinzufügen.

Ich würde auch empfehlen, so etwas wie für immer zu verwenden, um den Prozess nach einem Absturz und nach einem Absturz nicht zu unterbrechen.

    
Kevin Reilly 04.02.2014, 09:01
quelle
24

Ich habe dieses Problem gelöst, indem ich zuerst überprüft habe, wo node.js auf RaspberryPi installiert wurde:

%Vor%

Das gab mir:

%Vor%

Öffnen Sie crontab config:

%Vor%

Dann in meiner Crontab:

%Vor%

Speichern, Neustart und Problem gelöst!

    
Mohit Athwani 17.02.2014 13:34
quelle
7

Mohit hat recht, aber Sie können readlink verwenden, um den vollständigen Pfad für Ihre Node.js-App zu finden, der später als Cron-Job hinzugefügt werden muss.

> %Vor%

Zum Beispiel readlink -f HAP-NodeJS/Core.js Ergebnisse in /home/pi/HAP-NodeJS/Core.js

Sie können auch which node verwenden, um den vollständigen Pfad zu finden, in dem node.js installiert ist

Erstellen Sie als Nächstes einen neuen Cron-Job mit sudo crontab -e und fügen Sie am Ende den folgenden Code hinzu:

%Vor%

zum Beispiel sieht mein Code so aus.

%Vor%

Nach dem Neustart (oder Start) sollte Ihre Node.js ausgeführt werden. Hoffe das klärt die Dinge.

    
Adeel C 10.12.2015 05:48
quelle

Tags und Links