Shutdown-Script unter systemd ausführen

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
chrisF2
Beiträge: 16
Registriert: 25.01.2007 22:00:55

Shutdown-Script unter systemd ausführen

Beitrag von chrisF2 » 25.01.2015 12:11:18

Hallo,

für Debian 7 habe ich ein Script, das automatisch beim Shutdown ein Backup mit rsync auf eine externe Festplatte macht.
Nun versuche ich, ein ähnliches Verhalten mit Debian 8 (systemd) zu realisieren. systemd startet ja alles als Daemon parallel und im Hintergrund (ohne Console). Mein Backup-Script braucht aber ggf. eine Eingabe vom Benutzer und dauert auch eine gewisse Zeit, während dessen systemd den Shutdown pausieren muß.
Wie meldet man solch ein Script korrekt an? Meine Suche im Netz hat mich bisher nicht weitergebracht.

Gruss,
Chris

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Shutdown-Script unter systemd ausführen

Beitrag von rendegast » 25.01.2015 14:35:23

Halte Dich an Debianunattended-upgrades und dessen
/etc/systemd/system/shutdown.target.wants/unattended-upgrades.service ->
/lib/systemd/system/unattended-upgrades.service
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

chrisF2
Beiträge: 16
Registriert: 25.01.2007 22:00:55

Re: Shutdown-Script unter systemd ausführen

Beitrag von chrisF2 » 26.01.2015 19:04:59

Ich habe meine *.service Datei entsprechend angepasst und nun wird mein Script immerhin schon mal beim Shutdown aufgerufen.
Aber wo landen die "echo's" aus meinem Script?? Ich habe auch immer das Problem, das beim Shutdown die Meldungen auf der Console so schnell durchrauschen und nach oben herausscrollen. Wie kann ich mir das Journal vom letzten Shutdown anzeigen? journalctl -b -1 meldet den Fehler "Failed to look up boot -1".
Irgendwie blick' ich es nicht...

rendegast
Beiträge: 15041
Registriert: 27.02.2006 16:50:33
Lizenz eigener Beiträge: MIT Lizenz

Re: Shutdown-Script unter systemd ausführen

Beitrag von rendegast » 16.02.2015 14:43:07

Du könntest noch
ExecStart[Pre]=
ExecStop[Post]=
ein 'sleep 5' o.ä. einbauen(?)

Oder ein dummy.service, anschließend nach dem eigentlichen service ('After=.....') das eine solche sleep-Pause einlegt.



Bzgl. der Meldungen/Ausgaben, Bsp. emergency.service
...
[Service]
Environment=HOME=/root
WorkingDirectory=/root
ExecStartPre=-/bin/plymouth quit
ExecStartPre=-/bin/echo -e 'Welcome to emergency mode! After logging in, type "journalctl -xb" to view\\nsystem logs, "systemctl reboot" to reboot, "systemctl default" to try again\\nto boot into default mode.'
ExecStart=-/bin/sh -c "/sbin/sulogin; /bin/systemctl --fail --no-block default"
Type=idle
StandardInput=tty-force
StandardOutput=inherit
StandardError=inherit
...
mfg rendegast
-----------------------
Viel Eifer, viel Irrtum; weniger Eifer, weniger Irrtum; kein Eifer, kein Irrtum.
(Lin Yutang "Moment in Peking")

Antworten