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?


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.

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.