systemd: Wie überprüfe ich die geplante Zeit eines verzögerten Herunterfahrens?


14

Ich benutze shutdown -h TIME/+DELAYmanchmal gerne . Seit der Umstellung auf systemd (unter Ubuntu) scheint sich jedoch einiges geändert zu haben.

Abgesehen von der Tatsache, dass ein früherer Befehl zum Herunterfahren die Ausführung eines neuen nicht mehr verhindert, kann ich nicht herausfinden, wie die geplante Herunterfahrzeit eines aktuellen Herunterfahrvorgangs überprüft werden kann.

Früher bin ich nur gelaufen ps aux | grep shutdown, um die geplante Abschaltzeit zu sehen.

Jetzt zeigt es mit systemd nur so etwas:

root      5863  0.0  0.0  13300  1988 ?        Ss   09:04   0:00 /lib/systemd/systemd-shutdownd

Wie kann ich die geplante Abschaltzeit eines solchen Prozesses überprüfen?

Ich habe es versucht shutdown -k, aber anstatt nur eine Pinnwandnachricht zu schreiben, scheint es auch die geplante Abschaltzeit auf jetzt + 1 Minute zu ändern.

Antworten:


12

man shutdown (8) sagt:

Das erste Argument kann eine Zeitzeichenfolge sein (normalerweise "jetzt").

Die Zeitzeichenfolge kann entweder im Format "hh: mm" für Stunden / Minuten vorliegen, wobei die Zeit angegeben wird, um die das Herunterfahren ausgeführt werden soll, angegeben im 24-Stunden-Format. Alternativ kann es in der Syntax "+ m" stehen, die sich auf die angegebene Anzahl von Minuten bezieht. "now" ist ein Alias ​​für "+0", dh zum Auslösen eines sofortigen Herunterfahrens. Wenn kein Zeitargument angegeben ist, wird "+1" impliziert.

Versuchen:

# shutdown +5
# systemctl status systemd-shutdownd.service

Sie sollten so etwas sehen:

● systemd-shutdownd.service - Delayed Shutdown Service
Loaded: loaded (/lib/systemd/system/systemd-shutdownd.service; static; vendor preset: enabled)
Active: active (running) since Tue 2015-09-15 09:13:11 UTC; 12s ago
Docs: man:systemd-shutdownd.service(8)
Main PID: 965 (systemd-shutdow)
Status: "Shutting down at Tue 2015-09-15 09:18:11 UTC (poweroff)..."
CGroup: /system.slice/systemd-shutdownd.service
       └─965 /lib/systemd/systemd-shutdownd

Status ist Shutting down at Tue 2015-09-15 09:18:11 UTC (poweroff)...


Vielen Dank. Das war einfach. Ich habe zuvor erfolglos versucht, den "Servicestatus" zu ermitteln. Ich glaube, ich bin es noch nicht gewohnt, genug zu systemieren.
KIAaze

3
systemd-shutdowndwurde im Mai 2015 von systemd entfernt.
JdeBP

Das ist richtig. Vielen Dank für den Hinweis. Wenn eine neuere Version von systemd verwendet wird, soll dann etwa wie folgt genügen: USECS=$(busctl get-property org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager ScheduledShutdown | cut -d ' ' -f 3); SECS=$((USECS / 1000000)); date --date=@$SECS.
Evgeny Vereshchagin

8
# cat /run/systemd/shutdown/scheduled
USEC=1537242600000000
WARN_WALL=1
MODE=poweroff

Die USEC ist ein Zeitstempel der Unix-Epoche mit einer Genauigkeit von Mikrosekunden.

if [ -f /run/systemd/shutdown/scheduled ]; then
  perl -wne 'm/^USEC=(\d+)\d{6}$/ and printf("Shutting down at: %s\n", scalar localtime $1)' < /run/systemd/shutdown/scheduled
fi

zeigt etwas an wie:

Shutting down at: Tue Sep 18 03:50:00 2018

Systemd- Version ist 232-25 + deb9u4 und läuft unter Debian Stretch.


5

Für neuere Linux-Distributionsversionen müssen Sie möglicherweise Folgendes tun:

busctl get-property org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager ScheduledShutdown

Die Methode zum Herunterfahren hat sich geändert

Versucht auf: - Debian Stretch 9.6 - Ubuntu 18.04.1 LTS

Verweise


2
Der Ausgang gibt die Abschaltzeit in Mikrosekunden seit der Unix-Epoche an. So erhalten Sie eine für Menschen lesbare Zeit:date -d @$(( $(busctl get-property org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.login1.Manager ScheduledShutdown | cut -d' ' -f3) / 1000000 ))
200_success

4

Ich bin auf dieselbe Frage gestoßen und habe einen anderen Weg gefunden, um den Abschaltplan zu überprüfen.

Wenn Sie einen Shutdown-Plan festlegen, sendet wall eine Nachricht an alle angemeldeten Benutzer mit der Berechtigung mesg yes. Bei jedem Aufruf von wall wird eine Benachrichtigung an syslog gesendet . Um das Syslog zu durchsuchen , könnten Sie den Befehl ausführen journalctl -u systemd-shutdownd, die -uOption könnte das Log nach Einheit filtern.

Wenn Sie ausführen journalctl -u systemd-shutdownd, werden die folgenden Details zum Herunterfahren angezeigt:

[root@dev log]# journalctl -u systemd-shutdownd
-- Logs begin at Mon 2017-06-12 09:39:34 CST, end at Mon 2017-06-12 14:05:04 CST. --
Jun 12 09:39:50 dev.local systemd[1]: Started Delayed Shutdown Service.
Jun 12 09:39:50 dev.local systemd[1]: Starting Delayed Shutdown Service...
Jun 12 09:39:50 dev.local systemd-shutdownd[1249]: Shutting down at Mon 2017-06-12 21:00:00 CST (poweroff)...
Jun 12 09:55:59 dev.local systemd-shutdownd[1249]: Shutdown canceled.
Jun 12 09:56:07 dev.local systemd[1]: Started Delayed Shutdown Service.
Jun 12 09:56:07 dev.local systemd[1]: Starting Delayed Shutdown Service...
Jun 12 09:56:07 dev.local systemd-shutdownd[2885]: Shutdown canceled.
Jun 12 11:54:15 dev.local systemd[1]: Started Delayed Shutdown Service.
Jun 12 11:54:15 dev.local systemd[1]: Starting Delayed Shutdown Service...
Jun 12 11:54:15 dev.local systemd-shutdownd[3178]: Shutting down at Mon 2017-06-12 20:00:00 CST (poweroff)...

1

Auf einem Ubuntu 18.04-Rechner wird das Herunterfahren von verwaltet systemd. Auf meinem Computer habe ich automatische Neustarts über unbeaufsichtigte Upgrades aktiviert:

$ grep Automatic-Reboot /etc/apt/apt.conf.d/50unattended-upgrades
Unattended-Upgrade::Automatic-Reboot "true";
Unattended-Upgrade::Automatic-Reboot-Time "02:00";

Die geplante Zeit für den automatischen Neustart wird in gespeichert /run/systemd/shutdown/scheduled.

$ cat /run/systemd/shutdown/scheduled
USEC=1563976800000000 
WARN_WALL=1
MODE=reboot

Sie können dies mit dem folgenden Befehl in eine vom Menschen lesbare Zeit umwandeln:

$ date -d "@$( awk -F '=' '/USEC/{ $2=substr($2,1,10); print $2 }' /run/systemd/shutdown/scheduled )"
Thu Jul 25 02:00:00 NZST 2019
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.