Wenn das Herunterfahren des Computers über die GUI mit dem vom Terminal mit dem Befehl identisch ist:
Dies hängt natürlich von der GUI ab, aber meistens wird eine DBus-Nachricht gesendet, entweder direkt an init oder an etwas wie ConsoleKit / systemd-logind.
Während beide Methoden letztendlich dazu führen, dass init den Herunterfahren-Prozess starten soll, unterscheiden sie sich hauptsächlich in der Art der verwendeten Autorisierung, z. B. das Herunterfahren über systemd-logind kann von jedem an der Konsole angemeldeten Benutzer initiiert werden, während der shutdown
Befehl normalerweise nur root ist .
(Gleiches gilt jedoch nicht für systemctl poweroff
einen GUI-ähnlichen Mechanismus als shutdown
.)
Empfängt der init-Prozess ein Signal wie SIGPWR oder SIGTERM oder wird es anders heruntergefahren? Ich hoffe du kannst helfen. Vielen Dank.
Dies hängt natürlich vom Init-System ab, aber meistens wird eine IPC-Nachricht entweder über D-Bus, einen einfachen Unix-Socket oder eine Named Pipe gesendet.
systemd hat D-Bus und
/run/systemd/private
als Fallback;Upstart hat D-Bus und anscheinend
/run/initctl
auch;SysV init hat
/dev/initctl
manchmal/etc/.initctl
in letzter Zeit/run/initctl
.
(SIGPWR hat eine andere Bedeutung - es informiert init lediglich über einen Stromausfall, ohne ausdrücklich eine Aktion anzufordern.)