GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie führe ich ein Skript vor allem anderen beim Herunterfahren mit systemd aus?

Servicedateien müssen nicht erstellt oder bearbeitet werden. Legen Sie einfach Ihr Skript ab

/usr/lib/systemd/system-shutdown/

https://www.freedesktop.org/software/systemd/man/systemd-halt.service.html

Unmittelbar vor der Ausführung des eigentlichen Systemstopps/poweroff/reboot/kexec führt systemd-shutdown alle ausführbaren Dateien in /usr/lib/systemd/system-shutdown/ aus und übergibt ihnen ein Argument:entweder „halt“, „poweroff“, „reboot " oder "kexec", je nach gewählter Aktion. Alle ausführbaren Dateien in diesem Verzeichnis werden parallel ausgeführt, und die Ausführung der Aktion wird nicht fortgesetzt, bevor alle ausführbaren Dateien beendet sind.

Ich benutze es, um einfach den PC-Lautsprecher zu piepen.


Ich hab's!

Nehmen Sie die Lösung Lang andauernder Prozess mit StopExec und ändern Sie es wie folgt:

autobackup.service:

[Unit]
Description=Slow backup script
RequiresMountsFor=/mnt/BACKUP /home

[Service]
ExecStop=/etc/systemd/system/do_backup.sh
Type=oneshot
RemainAfterExit=yes

[Install]
WantedBy=multi-user.target

Beachten Sie die Zeile:

RequiresMountsFor=/mnt/BACKUP /home

Auf diese Weise funktioniert es wie erwartet.


Linux
  1. Linux – Wie führe ich ein Skript mit Systemd direkt vor dem Herunterfahren aus?

  2. Linux – Wie bekommt man mit Systemd weniger Ttys?

  3. Wie lässt sich ein Python-Skript als Dienst ausführen?

  4. Wie stoppen Sie den systemd-Dienst

  5. Wie führe ich einen Teil eines Skripts mit eingeschränkten Rechten aus?

So führen Sie Container als Systemd-Dienst mit Podman aus

So führen Sie Shell-Skript als Systemd-Dienst in Linux aus

So führen Sie Pods als systemd-Dienste mit Podman aus

So richten Sie die automatische Ausführung eines Python-Skripts mit Systemd ein

So führen Sie Shell-Skript als SystemD-Dienst in Linux aus

So führen Sie ein Bash-Skript aus