484 Stimmen

Wie führt man ein Shell-Skript beim Start aus

Auf einer Amazon S3 Linux-Instanz habe ich zwei Skripte namens start_my_app und stop_my_app, die forever starten und beenden (was dann meine Node.js-Anwendung ausführt). Ich verwende diese Skripte, um meine Node.js-Anwendung manuell zu starten und zu stoppen. Soweit so gut.

Mein Problem: Ich möchte auch einrichten, dass start_my_app jedes Mal ausgeführt wird, wenn das System hochfährt. Ich weiß, dass ich eine Datei in init.d hinzufügen muss und ich weiß, wie ich sie in das entsprechende Verzeichnis innerhalb von rc.d verknüpfen muss, aber ich kann nicht herausfinden, was tatsächlich in die Datei kommen muss, die ich in init.d platziere. Ich denke, es sollte nur eine Zeile sein, wie z.B. start_my_app, aber das hat bei mir nicht funktioniert.

5 Stimmen

Ich bin kein Experte in dieser Art von Dingen, aber ich denke, die init.d-Lösung (hier) sollte der rc.local-Lösung vorgezogen werden, da letztere das alte Werkzeug ist, das nur noch verwendbar ist, weil das neue Werkzeug abwärtskompatibel ist.

0 Stimmen

Pm2 start my_app; pm2 startup; pm2 save github.com/Unitech/pm2 pm2 start my_app; pm2 startup; pm2 speichern github.com/Unitech/pm2

0 Stimmen

Im Raspbian gibt es eine .config/lxsession/LXDE-pi/autostart, die für mich besser funktioniert hat - gibt es ein Äquivalent in anderen Betriebssystemen? Der Grund, warum es für mich besser funktioniert hat, war, dass nicht alles (in meinem Fall Apache) initialisiert wird, wenn rc.local ausgeführt wird, während autostart der Start der Benutzersitzung ist und daher so ziemlich alles zu diesem Zeitpunkt initialisiert werden sollte.

0voto

Kibrom Gebre Punkte 119
  • Fügen Sie Ihr Skript zum Verzeichnis /etc/init.d/ hinzu
  • Aktualisieren Sie Ihre rc-Ausführungsebenen: $ update-rc.d myScript.sh defaults NN, wobei NN die Reihenfolge angibt, in der es ausgeführt werden soll. Zum Beispiel bedeutet 99, dass es nach 98 und vor 100 ausgeführt wird.

-6voto

SagarSave Punkte 31

Für einige Personen wird dies funktionieren:

Sie könnten einfach den folgenden Befehl in SystemPreferencesStartup Applications hinzufügen:

bash /voller/Pfad/zu/deinem/script.sh

0 Stimmen

Ich sehe das nicht im Systemeinstellungen Menü. Aber ich sehe es, wenn ich in den Anwendungsstarter suche.

0 Stimmen

Dies wird tatsächlich nicht beim Start ausgeführt, sondern beim Anmelden, was einen ziemlich großen Unterschied darstellt. Es hängt auch von einer bestimmten Konfiguration ab, da Sie "System > Einstellungen" nicht auf jedem System haben werden (insbesondere nicht auf Servern).

4 Stimmen

Diese Antwort scheint eher für Ubuntu/Linux-Desktop zu sein, aber der Benutzer bittet tatsächlich um Hilfe für eine AWS EC2 Linux-Instanz, die meines Wissens nach keine GUI hat.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X