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.