Führen Sie während des Herunterfahrens / Beendens einer aws-Instanz ein Skript aus

2

Ich muss während des Herunterfahrens / Beendens einer AWS-Instanz (Debian) ein Skript ausführen. Ich habe mein Skript zu /etc/init.d/myscript und einen Symlink zu /etc/rc0.d/K01myscript hinzugefügt. Ich habe jedoch festgestellt, dass ich beim Beenden der Instanz nicht sehe, dass mein Skript ausgeführt wird. Irgendeine Idee?

Vishnu Nair
quelle
1
Woher weißt du, dass es nicht ausgeführt wird? Gibt es lokale ~ Referenzen oder Programme, von denen erwartet wird, dass sie sich im Pfad befinden? Möglicherweise muss explizit der Speicherort angegeben werden, an dem ausgeführt werden soll.
Xen2050
Ich erkläre meinen Anwendungsfall. Ich verwende Sensu zum Überwachen und meine App wird unter einer ASG ausgeführt. Also benutze ich systemd für den sensu-Kundenservice. Wenn eine Instanz gestartet wird, wird sie automatisch mit dem Sensu-Masterserver verbunden. Wenn die Instanz ausfällt, muss sie vom Sensu-Masterserver abgemeldet werden. Ich habe das Skript manuell ausprobiert und es funktioniert wie erwartet. Ich möchte, dass dieses Skript während des Herunterfahrens ausgeführt wird.
Vishnu Nair

Antworten:

2

Also benutze ich systemd für den sensu kundenservice

Wenn dies tatsächlich der Fall ist, dann tun Sie es nicht benutze überhaupt Init-Skripte. Alles, was Sie tun müssen, ist, Ihrem systemd-Dienst die beiden folgenden Zeilen hinzuzufügen:

 RemainAfterExit=yes
 ExecStop=/path/to/executable/script

Die erste Option weist systemd an, den Dienst als Daemon zu behandeln. d.h. um es als lauffähig zu behandeln, obwohl alle Prozesse bereits gestorben sind; Die zweite Anweisung zeigt systemd auf das Bereinigungsskript, das Sie bereitstellen müssen.

MariusMatutiae
quelle