Stretch + shutdown

Alle weiteren Dienste, die nicht in die drei oberen Foren gehören.
Antworten
klal
Beiträge: 237
Registriert: 20.12.2007 12:16:41

Stretch + shutdown

Beitrag von klal » 29.06.2017 09:58:38

Hallo,
was hat sich denn in Stretch bei dem shutdown Prozess geändert?

Bisher wurde bei shutdown -h +100& ..., die Datei:
"/var/run/systemd/shutdown/scheduled" erstellt, welche die shutdown Parameter enthielt.

Beim Abbruch, shutdown -c wurde diese Datei gelöscht.
Nun wird sie nicht mehr gelöscht.

Wo ist denn jetzt der Eintrag ob ein shutdown aktiv oder nicht aktiv ist?

Grüße
Klal

TomL

Re: Stretch + shutdown

Beitrag von TomL » 29.06.2017 10:26:28

Shutdown gibts seit mehreren Jahren nicht mehr als eigenständiges Programm.... zumindest seit Jessie nicht mehr.

Code: Alles auswählen

 ls /sbin/shutdown
lrwxrwxrwx 1 root root 14 2017-05-07 10:23 /sbin/shutdown -> /bin/systemctl
Du müsstest Dich also mal mit den Möglichkeiten von systemctl befassen..... bzw. auch ganz allgemein mit systemd. Mit systemd sehen die Befehle so aus:

Code: Alles auswählen

systemctl halt
systemctl poweroff
systemctl restart
usw.

Code: Alles auswählen

man systemctl 
offenbart einen Teil der Geheimnisse.....
klal hat geschrieben:Wo ist denn jetzt der Eintrag ob ein shutdown aktiv oder nicht aktiv ist?
Wenn man selber mit eigenen Jobs auf den Shutdown reagieren möchte, macht man das heute über das systemd->shutdown.target. Vielleicht hilft der folgende Link zu neuen Erkenntnissen:
https://unix.stackexchange.com/question ... e-shutdown

HTH

klal
Beiträge: 237
Registriert: 20.12.2007 12:16:41

Re: Stretch + shutdown

Beitrag von klal » 29.06.2017 11:27:38

Danke erstmal.

weder
systemctl list-jobs shutdown.target
systemctl status systemd-shutdownd.service
noch
systemctl status | grep -i IrgendwasDasNachShutdownOderSchedulKlingt

bringen irgendwelche Erfolge.

Klar,
/var/run/systemd/shutdown/scheduled
wird offensichtlich von systemd erstellt - aber bisher wurde es mit shutdown -c auch immer wieder entfernt, so das man hier abfragen konnte ob und was für ein shutdown läuft.

Gefunden habe ich:

qdbus --literal --system org.freedesktop.login1 /org/freedesktop/login1 org.freedesktop.DBus.Properties.Get org.freedesktop.login1.Manager ScheduledShutdown

mit dem man einen laufenden Shutdown abfragen kann.
Gibt es denn dazu wirklich keine Alternative?
Irgendwas Verständlicheres?

dufty2
Beiträge: 1709
Registriert: 22.12.2013 16:41:16

Re: Stretch + shutdown

Beitrag von dufty2 » 29.06.2017 12:33:38

Also, "shutdown" kann man nach wie vor benutzen, es ist nicht obsolet.
"shutdown.target" bedeutet ein klein wenig was anderes als das "shutdown"-Kommando und deshalb
wäre das equivalente eher "systemctl poweroff".
Dummerweise hat systemctl leider keine Zeitangaben, so dass man beim "shutdown -h +xxx" bleiben will ;)

Legt Dir halt eine alias an für Deinen qdbus-Ausdruck und/oder eröffne eine Bugreport zwecks fehlender Löschung.

TomL

Re: Stretch + shutdown

Beitrag von TomL » 29.06.2017 21:19:42

klal hat geschrieben:mit dem man einen laufenden Shutdown abfragen kann.
Was bedeutet das? Was willst Du denn da abfragen? Oder willst Du einfach nur einformiert werden, dass der Shutdown veranlasst ist, um noch gewisse eigene Jobs sauber abzuschließen?

Vielleicht ist der Befehl "shutdown" nicht obsolet, er funktioniert ja... man sollte nur die Tatsache akzeptieren, dass shutdown als Programm NICHT mehr exisitiert, sondern auf systemctl gesymlinkt ist. Das bedeutet, das die früheren echten Shutdown-Parameter eben nicht mehr funktionieren, es funktionieren nur noch die, die systemctl vorsieht. Ich halte es für keine clevere Entscheidung, nach Lösungen für das alte Shutdow-Programm zu suchen, sondern besser die Möglichkeiten nutzen, die systemd heute bietet.

Allerdings verheimlichst Du leider, was beim Shutdown wirklich zusätzlich passieren soll, bzw. was Du beim Shutdown eigentlich beabsichtigst.... insofern kann man da nur schwer helfen.

klal
Beiträge: 237
Registriert: 20.12.2007 12:16:41

Re: Stretch + shutdown

Beitrag von klal » 29.06.2017 21:41:14

Es bedeutet eigentlich genau das was da steht:
Wie kann man einen laufenden Shutdown abfragen?

Wurde ein shutdown -h +X gestartet?
Wie groß ist X? Wann fährt das System herunter?

Ich will es einfach nur wissen - mir anzeigen lassen. Wie mache ich das?
Eine Möglichkeit habe ich ja schon selber gepostet - die DBus-Abfrage.

Gibt es eine einsichtigere Alternative dazu?
Was verheimliche ich Deiner Meinung nach, das eine Antwort dazu erschwert?

dufty2
Beiträge: 1709
Registriert: 22.12.2013 16:41:16

Re: Stretch + shutdown

Beitrag von dufty2 » 29.06.2017 22:33:40

TomL hat geschrieben: Vielleicht ist der Befehl "shutdown" nicht obsolet, er funktioniert ja... man sollte nur die Tatsache akzeptieren, dass shutdown als Programm NICHT mehr exisitiert, sondern auf systemctl gesymlinkt ist. Das bedeutet, das die früheren echten Shutdown-Parameter eben nicht mehr funktionieren, es funktionieren nur noch die, die systemctl vorsieht.
Die Aussage stimmt so nicht:
"shutdown" wurde quasi in systemctl integriert und wenn man systemctl als "shutdown" aufruft, dann kann man ihm auch die Paramter aus dem "alten shutdown" übergeben.
Ein Programm, das sich ähnlich verhält, ist z. B. "busybox".

Man sieht es auch im Source Code: https://github.com/systemd/systemd/blob ... ystemctl.c
Beim schnellen Drüberfliegen, war mir aber nicht klar, wo bzw. wann die "scheduled"-Datei gesetzt wird (evtl. vom logind selbst).

Falls man einen Grund nicht in der Git-History findet für das "Nicht-löschen der scheduled-Datei", dann halt einen bugreport erstellen.

TomL

Re: Stretch + shutdown

Beitrag von TomL » 29.06.2017 23:15:29

dufty2 hat geschrieben:Die Aussage stimmt so nicht:
"shutdown" wurde quasi in systemctl integriert und wenn man systemctl als "shutdown" aufruft, dann kann man ihm auch die Paramter aus dem "alten shutdown" übergeben.
Anhand des von Dir geposteten Source-Code-Links kann ich jetzt nicht prüfen, ob meine Aussage tatsächlich falsch ist. Dazu müsste man mal den Source-Code von "shutdown" aus Wheezy gegenprüfen. Aber leider finde ich da nix. Fakt ist, der alte Shutdown führt den Poweroff in Zusammenhang mit runlevel 1 durch.... und genau diese runlevels gibts unter systemd nicht mehr - insofern kann shutdown gar nicht unverändert übernommen worden sein. Das möglicherweise einzelne Parameter so sind wie früher, ist vermutlich dem Umstand geschuldet, dass viele Leute nix neues lernen wollen. Aber der Shutdown läuft unter systemd eben definitiv anders ab, als noch unter wheezy.... und zwar nicht mehr nach statischen runlevel-Kriterien ab, sondern nach den in den Units gesetzten Abhängigkeiten, die wiederum von Targets abhängig sind... und da ist sogar variabilität in der Reihenfolge zwischen zwei Boots möglich.

TomL

Re: Stretch + shutdown

Beitrag von TomL » 29.06.2017 23:36:51

klal hat geschrieben:Wie kann man einen laufenden Shutdown abfragen?
Was willst Du bei einem laufenden Prozess zum Runterfahren des PC abfragen?

Wieviel % sind beim Runterfahren bereits abgearbeitet?
Welcher Prozess wurde gerade beim Shutdown beendet?
Welcher Prozess wird jetzt beendet?
Welcher Prozess wird als nächstes beendet?
Wieviel Zeit braucht es noch, bis der Shutdown durchgeführt ist?
Wie lange hat der ganze Shutdown gedauert? (Ne ganz spannende Frage *fg*, vor allem, wann man die Antworten bekommen kann)

All das bedeutet meiner Meinung nach "abfragen"... und sorry... das ist imho alles kokolores... was will man damit...?.. und solche Abfragen gehen meiner Meinung nach nicht.

Code: Alles auswählen

Wurde ein shutdown -h +X gestartet?
Du kannst eine Info bekommen, wenn das shutdown.target angezogen wird.
Wie groß ist X? Wann fährt das System herunter?
"man shutdown" zeigt, dass es X nicht mehr gibt, also kann man das auch nicht abfragen.Und wenn das shutdown.target angezogen wird, fährt der PC jetzt herunter... da gibts gar keine Verwechselung, jetzt heisst jetzt. Wenn X = Wartensekunden sind, mit der ich den Shutdown verzögern will, nehme ich einfach

Code: Alles auswählen

(sleep 30; systemctl poweroff) &
Aber dann muss ich 30 nicht abfragen, weil ich die Zeit ja selber gesetzt habe und weiss wie lange es dauert.
Ich will es einfach nur wissen - mir anzeigen lassen. Wie mache ich das?
In einem zweiten Terminal

Code: Alles auswählen

journalctl -f 
laufen lassen... das zeigt Dir den Shutdown, so lange wie es geht. Oder nach dem nächsten Boot kannst Du Dir mit

Code: Alles auswählen

journalctl -b -1 
wirklich alle Details des Shutdown in chronolgischer Reihenfolge ansehen. Dazu muss aber das Journal ordentlich eingestellt sein.
Was verheimliche ich Deiner Meinung nach, das eine Antwort dazu erschwert?
Welchen Sinn die Anzeigen oder das Abfragen hat.... welches sinnvolle Ziel damit überhaupt errreicht werden soll.Wenns nur ums Anzeigen geht, enthält das Journal alles, was das Herz begehrt.

klal
Beiträge: 237
Registriert: 20.12.2007 12:16:41

Re: Stretch + shutdown

Beitrag von klal » 30.06.2017 00:39:47

Man kann alle möglichen Dinge im laufenden Betrieb abfragen:
Welche Prozesse laufen, welche Benutzer angemeldet sind, an welchen Ports gelauscht wird, alles, wirklich alles kann man sich in Echtzeit anschauen.
Aber ob ein verzögerter shutdown gestartet ist und wann er ausgeführt wird, soll nicht abfragbar sein?
Zumal - wenn Du mein Posting gelesen hättest, wüßtest Du's - die Daten ja alle in "/var/run/systemd/shutdown/scheduled" stehen. Und bis Jessie konnte man dort also a) den Zeitpunkt des shutdown (und weiteres) erfahren und b) am Vorhandensein der Datei erkennen ob ein verzögerter shutdown gestartet wurde.
Das geht nun bei Stretch nicht mehr.

Aber deswegen, weil Du die Antwort auf meine Frage nicht weißt, meiner Frage den Sinn abzusprechen ist schon ziemlich arm.

Das Journal durchzuforsten ist was völlig anderes als einen aktuellen Systemstatus abzufragen.

TomL

Re: Stretch + shutdown

Beitrag von TomL » 30.06.2017 10:59:05

klal hat geschrieben:Man kann alle möglichen Dinge im laufenden Betrieb abfragen:
:::
Aber deswegen, weil Du die Antwort auf meine Frage nicht weißt, meiner Frage den Sinn abzusprechen ist schon ziemlich arm.
:::
....als einen aktuellen Systemstatus abzufragen.
klal hat geschrieben:Wie kann man einen laufenden Shutdown abfragen?
"laufender Betrieb" und "aktueller Systemstatus" (was nachwievor möglich ist) ist was völlig anderes als einen "laufenden Shutdown abfragen". Ausserdem ist ein laufender Shutdown etwas anderes, als ein eingeplanter Shutdown. Solange Du also unterschiedliche Sachen nicht auch wirklich unterscheidest und nicht das Problem eindeutig spezifizierst und klar sagst, was Du erreichen willst, kann man das auch nicht lösen.

Fakt ist, den laufenden Shutdown abzufragen, ist imho nicht nur Blödsinn, sondern (ebenfalls imho) auch nicht möglich. Du kannst auf einfachen Weg eine Info kriegen, dass das shutdown.target gestartet wurde, um darauf zu reagieren. Aber das shutdown.target zieht danach seinen Job durch, ohne das man imho den Ablauf detailliert abfragen kann. Man kriegt allenfalls Infos an seine eigenen Units, die während des Shutdowns von systemd aufgefordert werden, sich zu beenden oder die, wenn sie nicht reagieren, nach einem Timeout via SIGTERM beendet werden.

klal
Beiträge: 237
Registriert: 20.12.2007 12:16:41

Re: Stretch + shutdown

Beitrag von klal » 30.06.2017 13:08:25

Ich weiß wirklich nicht ob Du mich absichtlich mißverstehen willst weil Du die Antwort nicht kennst oder ob Du tatsächlich verwirrt bist weil ich ein paar Sachen durcheinander gewürfelt habe und Du das Problem wirklich nicht heraus lesen kannst.

Ein letzter Versuch - an einem Beispiel:

1. Ich führe um 15:00 als root folgenden Befehl aus: shutdown -h +30&

Wie der funktioniert interessiert mich nicht.
Er funktioniert! und in 30 Min., um 15:30 wird das System herunter gefahren.

2. Ich führe innerhalb der nächsten 20 Min. den Befehl X aus.

Mir wird angezeigt: Um 15:30 wird das System herunter gefahren.

Wie lautet der Befehl X ?

TomL

Re: Stretch + shutdown

Beitrag von TomL » 30.06.2017 16:11:40

klal hat geschrieben:Ich weiß wirklich nicht ob Du mich absichtlich mißverstehen willst
Nee, das ist wirklich ganz einfach.... präzise Frage ermöglichen präzise Antworten... und Deine Frage hatte mit dem, was Du eigentlich willst, so gut wie nix zu tun.

Ich hätte gefragt "wie kann ich die Uhrzeit des eingeplanten Shutdown-Befehl abfragen?". Und auch das ist wirklich einfach:

Code: Alles auswählen

# systemctl status systemd-shutdownd.service
   systemd-shutdownd.service - Delayed Shutdown Service
   Loaded: loaded (/lib/systemd/system/systemd-shutdownd.service; static)
   Active: inactive (dead) since Fr 2017-06-30 16:04:14 CEST; 1s ago
     Docs: man:systemd-shutdownd.service(8)
  Process: 1896 ExecStart=/lib/systemd/systemd-shutdownd (code=exited, status=0/SUCCESS)
 Main PID: 1896 (code=exited, status=0/SUCCESS)
   Status: "Exiting..."

# shutdown 10
Shutdown scheduled for Fr 2017-06-30 16:14:34 CEST, use 'shutdown -c' to cancel.

# systemctl status systemd-shutdownd.service
   systemd-shutdownd.service - Delayed Shutdown Service
   Loaded: loaded (/lib/systemd/system/systemd-shutdownd.service; static)
   Active: active (running) since Fr 2017-06-30 16:04:34 CEST; 5s ago
     Docs: man:systemd-shutdownd.service(8)
 Main PID: 1904 (systemd-shutdow)
   Status: "Shutting down at Fri 2017-06-30 16:14:34 CEST (poweroff)..."
   CGroup: /system.slice/systemd-shutdownd.service
           └─1904 /lib/systemd/systemd-shutdownd

Jun 30 16:04:34 PC systemd[1]: Started Delayed Shutdown Service.
Jun 30 16:04:34 PC systemd-shutdownd[1904]: Shutting down at Fri 2017-06-30 16:14:34 CEST (poweroff)...

dufty2
Beiträge: 1709
Registriert: 22.12.2013 16:41:16

Re: Stretch + shutdown

Beitrag von dufty2 » 30.06.2017 16:37:03

Mmmh,

Code: Alles auswählen

# systemctl status systemd-shutdownd.service
Unit systemd-shutdownd.service could not be found.
#
Das ist jetzt zwar buster (testing), dürfte aber in stretch (stable) auch so sein, vgl. auch
https://utcc.utoronto.ca/~cks/space/blo ... OfShutdown

TomL

Re: Stretch + shutdown

Beitrag von TomL » 30.06.2017 16:43:35

Oh... was ist das denn....? ... 8O

Ich habe das gerade hier an einem Jessie-PC getestet.... fehlerlos.... das ist allerdings wirklich jetzt sehr eigenartig.... :? ... und erst Mal bin ich sprachlos.... scientific...?.... huhu... ;)

Antworten