Führen Sie die SH-Datei aus, wenn die Amazon EC2-Instanz gestartet wird

Führen Sie die SH-Datei aus, wenn die Amazon EC2-Instanz gestartet wird

Ich habe eine „sh“-Datei, die einen Knotenserver startet.

Es funktioniert gut, wenn ich laufe

sh /var/www/init_node.sh

Ich möchte, dass das Skript bei jedem Neustart meiner Instanz ausgeführt wird (damit ein Knotenserver aktiv ist).

Ich habe das Skript wie folgt zu meiner Datei /etc/rc.local hinzugefügt:

sh /var/www/init_node.sh 
exit 0

Wenn ich die Instanz jedoch neu starte, läuft der NodeJS-Server nicht. Es handelt sich um eine Ubuntu 64-Instanz.

Ich denke, dass es nicht wichtig ist, aber hier ist der Inhalt meiner sh-Datei:

cd /var/www/myproject
eval `ssh-agent -s`
ssh-add -D
ssh-add ~/.ssh/id_rsa
git stash
git pull origin master --force
forever start express.js 

Auch

sh /etc/rc.local 

funktioniert gut

Irgendwelche Ideen?

Antwort1

Ich hatte ein ähnliches Problem mit der Datei rc.local auf einer Amazon-Instanz. Es stellte sich heraus, dass ich einen Fehler mit dem Skript in rc.local hatte, der dessen Ausführung nicht zuließ, sofern ich kein TTY hatte.

Wie finden Sie also heraus, ob bei Ihnen ein ähnlicher Fehler auftritt? Verwenden Sie cloud-init, um Ihr Skript auszuführen.

Für meine Amazon-Linux-Distribution habe ich zuerst bearbeitet /etc/init.d/cloud-init-user-scripts.

Ändern Sie diese Zeile /usr/bin/cloud-init-run-module once-per-instance user-scripts execute run-parts ${SCRIPT_DIR} >/dev/null && success || failure

ZU "immer"

/usr/bin/cloud-init-run-module always user-scripts execute run-parts ${SCRIPT_DIR} >/dev/null && success || failure

Erstellen Sie dann ein Verzeichnis mkdir /var/lib/cloud/data/scripts.. Kopieren Sie nun Ihr Skript, das beim Start ausgeführt werden soll, nach /var/lib/cloud/data/scripts. Stellen Sie sicher, dass das ausführbare Bit Ihres Skripts gesetzt ist.

Jetzt sollte die Ausführung möglich sein sudo /etc/init.d/cloud-init-user-scripts start. Anschließend können Sie /var/log/cloud-init.lognach Fehlern suchen.

verwandte Informationen