Führen Sie das Skript aus, bevor andere Einheiten beim Herunterfahren aufhören

479
2rs2ts

Ich muss ein Skript ausführen, bevor eine Reihe anderer Dienste auf meinem Computer angehalten wird, wenn der Computer heruntergefahren wird. (In meinem Fall wird eine EC2-Instanz beendet.)

Ich habe Variationen der Antwort in dieser Frage ausprobiert, aber nichts funktioniert: Wie führe ich vor dem Herunterfahren mit systemd ein Skript aus? (Ich habe mir auch unix.se angesehen, aber es ist auch nicht gut: https://unix.stackexchange.com/questions/39226/how-to-run-a-script-with-systemd-right-vor-shutdown .. und ich habe auch in Mailinglisten nachgesehen.)

Mein größtes Problem ist, dass das OP dieser Frage das Skript ausführen wollte, bevor einige Mounts abgehängt wurden, aber ich habe keine Anforderungen an Mounts, sondern eher an Services.

Mein Service ist ungefähr so:

[Unit] Description=Run script before other things stop on shutdown Wants=multi-user.target network.target foo.service bar.service After=multi-user.target network.target foo.service bar.service  [Service] ExecStart=/bin/true ExecStop=-/my/script ExecStopPost=/bin/sleep 5s RemainAfterExit=yes Type=oneshot  [Install] WantedBy=multi-user.target 

Ich aktiviere und starte dieses Gerät nach dem Booten, aber es scheint das Skript nicht auszuführen, wenn ich die Instanz herunterfahre. Ich bin ratlos, wie kann ich das tun?

Ich verwende systemd 232 unter Debian Stretch.

1
"... aber so etwas habe ich nicht." - Natürlich tun Sie das, Sie haben es sogar in Ihrem ersten Absatz erwähnt: Sie haben "vor einer Reihe anderer Dienste auf meiner Maschine angehalten". grawity vor 5 Jahren 0
@grawity Ich bezog mich ausdrücklich auf Reittiere 2rs2ts vor 5 Jahren 0

0 Antworten auf die Frage