Hallo zusammen,
ich will zu Testzwecken folgendes Script beim Herunterfahren oder Neustarten ausführen:
#!/bin/bash # Ausgabe Shutdownzeit (echo "heruntergefahren am: "; date) >> /home/jensundpa/Programmierung/Linux/Boot_Shutdow_Zeit exit 0
Dazu habe ich die Datei
/etc/systemd/system/shutdownscripte_jens.service
erstellt.
[Unit] Description=Shutdownscripte Jens DefaultDependencies=no Before=poweroff.target reboot.target halt.target [Service] ExecStart=/bin/true ExecStop=/usr/local/bin/ScriptShutdownzeit Type=oneshot RemainAfterExit=yes [Install] WantedBy=poweroff.target reboot.target halt.target
Dies ist einer meiner Versuche aufgrund meiner bisherigen Recherchen zu diesem Thema. Das Problem ist nun, dass diese Unit bei jedem Systemstart gestartet wird. Hier der systemctl Status nach dem Booten:
shutdownscripte_jens.service - Shutdownscripte Jens Loaded: loaded (/etc/systemd/system/shutdownscripte_jens.service; enabled; vendor preset: enabled) Active: active (exited) since Sat 2019-03-16 14:18:30 CET; 1min 6s ago Process: 282 ExecStart=/bin/true (code=exited, status=0/SUCCESS) Main PID: 282 (code=exited, status=0/SUCCESS) Warning: Journal has been rotated since unit was started. Log output is incomplete or unavailable.
Beim Herunterfahren passiert aber leider nichts.
Wenn ich nach dem Systemstart über das Terminal
systemctl stop shutdownscripte_jens.service
ausführe wird mein Script ausgeführt.
Aus meiner Sicht müsste ich es verhindern, das Systemd die Unit beim Systemstart ausführt sondern sie erst beim Herunterfahren oder Neustarten gestartet wird. Dann könnte ich den Bereich Service so gestalten:
[Service] ExecStart=/usr/local/bin/ScriptShutdownzeit Type=oneshot RemainAfterExit=yes
Das habe ich bereits versucht. Das Script wird dann beim Systemstart ausgeführt mit der Fehlermeldung, dass die Datei oder das Verzeichnis, in die das Scrip schreiben soll, nicht gefunden wird.
Führe ich dann über das Terminal
systemctl stop shutdownscripte_jens.service systemctl start shutdownscripte_jens.service
wird mein Script ausgeführt.
Hat jemand ein Idee wo der (Denk)fehler liegt?
Vielen Dank jedenfalls schon mal für Eure Mithilfe.
Jens