[[Vorlage( getestet, ) ]] {{{#!vorlage Wissen [:Pakete_installieren: Installation von Programmen] [:Paketquellen_freischalten: Bearbeiten von Paketquellen] [:Paketinstallation_DEB: Ein einzelnes Paket installieren] [:Terminal: Ein Terminal öffnen] [:Editor: Einen Editor öffnen] }}} [[Inhaltsverzeichnis()]] [[Bild(./shutdown_logo.png, 48, align=left)]] Ein PC ist schnell eingeschaltet. Das Abschalten dagegen kann komplexer sein: Soll es zeitgesteuert sein? Und wie erlaubt man einem Nutzer das Ausschalten, wenn kein [:Displaymanager:] diese Funktion global bereitstellt? Im Terminal geht es mit welchem Befehl? Dieser Artikel klärt diese Fragen. = Zeitgesteuert herunterfahren = In diesem Abschnitt werden Programme mit grafischer Oberfläche vorgestellt, die das zeitgesteuerte Abschalten des Rechners ermöglichen. Auch per Terminal ist dies mit dem Befehl [#shutdown shutdown] möglich. == qshutdown == [[Vorlage(Bildunterschrift, ./qshutdown.png, 150, "qshutdown", right)]] [:qshutdown:] ist ein Programm, das den PC zeitgesteuert herunterfahren, neu starten und in den Energiespar- oder Ruhezustand versetzen kann. Man kann sowohl eine Uhrzeit als auch eine Anzahl von Minuten angeben, zu der die entsprechende Aktion ausgeführt werden soll. Wenn nur noch wenig Zeit bis zur gewünschten Aktion verbleibt, warnt das Programm optional durch ein dreimaliges Wiedererscheinen. Mit Hilfe dieses Programms kann man stets die verbleibende Zeit im Auge behalten. Es soll einem ermöglichen, ohne Terminal auszukommen, und vermeidet dabei die [:wall:]-Meldung, die beim `shutdown`-Befehl im Terminal manche Prozesse stören kann. Außerdem benötigt qshutdown in der Regel keine Root-Rechte. == GShutdown == [https://github.com/Asher256/gshutdown GShutdown] {en} funktioniert nur korrekt mit dem [:Displaymanager:] [:GDM:] [:Ubuntu:] (ab 17.04) und [:Xubuntu:] und nicht mit [:LightDM:] verwendet. GShutdown kann den Rechner zu einem bestimmten Termin herunterfahren, neu starten oder die aktuelle Sitzung beenden. Das Programm ist in den offiziellen Paketquellen enthalten: {{{#!vorlage Paketinstallation gshutdown }}} Alternativ kann das Programm von der [https://gshutdown.tuxfamily.org/en/download.php Download-Seite] {en} {dl} von GShutdown heruntergeladen und manuell installiert werden [3]. Nach der Installation kann man das Programm über ''"Zubehör -> GShutdown"'' starten. [[Vorlage(Fremd, Paket, "")]] [[Vorlage(Bildunterschrift, ShutdownTimer.png, 150, "ShutdownTimer", right)]] == ShutdownTimer == Wenn man die [:GNOME_Shell:] benutzt, bietet die Erweiterung [https://extensions.gnome.org/extension/792/shutdowntimer/ ShutdownTimer] {en} eine sehr bequeme Möglichkeit, den Rechner zeitgesteuert auszuschalten. Unterhalb der Herunterfahren-Schaltfläche im Statusmenü fügt sich der Menüpunkt ein, mit dem man die Zeit einstellen und den Timer (de-)aktivieren kann. [[Vorlage(Bildunterschrift, ./kshutdown_with_extras.png, 150, "KShutDown", right)]] == KShutDown == [sourceforge2:kshutdown:KShutDown] {en} ist ein Programm für das automatische Herunterfahren des Systems aus KDE heraus. Das Programm kann jedoch deutlich mehr als nur den Rechner herunterfahren. So kann das Programm z.B. die Internetverbindung zu einem bestimmten Zeitpunkt beenden, die Wiedergabe verschiedener Audio-Player stoppen usw. Das Programm kann direkt aus den Paketquellen von Ubuntu über das folgende Paket installiert werden: {{{#!vorlage Paketinstallation kshutdown, universe/kde }}} Nach der Installation kann man das Programm unter ''"{k} → Anwendungen → Dienstprogramme → KShutDown (System Shut Down Utility)"'' aufrufen. = Herunterfahren per Terminal = Das normale Herunterfahren im Terminal[4] erfolgt bei Systemen mit [:systemd:] über [:systemd/systemctl/#System-Kommandos:systemctl-Kommandos]. Für das zeitgesteuerte Herunterfahren gibt es allgemeine Befehle für die Root-Rechte notwendig sind. Nahezu jede Desktopumgebung verwendet ein anderes Programm um das Herunterfahren über die grafische Oberfläche in die Wege zu leiten. Auch aus einem Skript heraus kann man einen mehr oder weniger normalen Dialog aufrufen (mit Benutzerrechten). Zum Teil können Optionen angegeben werden. Mehr erfährt man meist in der Hilfe oder manpage. Hier eine kurze Übersicht: {{{#!vorlage tabelle Derivat Befehl +++ Ubuntu [[BR]] Ubuntu Budgie [[BR]] Ubuntu Unity `gnome-session-quit` +++ Ubuntu MATE `mate-session-save` +++ Kubuntu `/usr/lib/x86_64-linux-gnu/libexec/ksmserver-logout-greeter -?` +++ Lubuntu `lxqt-leave` +++ Xubuntu `xfce4-session-logout` }}} == Allgemein mit Root-Rechten == === shutdown === Shutdown muss man verschiedene Optionen mitgeben. Möchte man bei sehr alten Rechnern sichergehen, dass der Rechner danach abgeschaltet wird, sollte man die Option `-P` verwenden (`-h` überlässt die Wahl dem System). {{{#!vorlage Befehl shutdown -h now # Fährt das System sofort herunter shutdown -P now # Fährt das System sofort herunter und veranlasst die Abschaltung des Rechners shutdown -h 60 # Fährt das System in 60 Minuten herunter shutdown -h 20:30 # Fährt das System um 20:30 Uhr herunter shutdown -r 60 # Fährt das System in 60 Minuten herunter und startet es anschließend neu }}} Wenn man nun den Timer gestartet hat, es sich aber doch anders überlegt und den Computer weiterhin benutzen möchte, so muss man das Herunterfahren des Rechners mittels {{{#!vorlage Befehl shutdown -c }}} abbrechen. === halt / reboot / poweroff === Alternativ kann man auch die Befehle {{{#!vorlage Befehl systemctl poweroff #oder poweroff #oder sudo halt -p }}} zum sofortigen Herunterfahren nutzen. Einen Neustart bewirkt: {{{#!vorlage Befehl systemctl reboot }}} bzw. {{{#!vorlage Befehl reboot }}} [[Anker(Benutzershutdown)]] == Mit Benutzerrechten == === Die "sudoers" Methode === Möchte man den Befehl `shutdown` in einem Skript benutzen oder anderen Benutzern ermöglichen (die dazu keine Root-Rechte auf dem Rechner bekommen sollen), den Rechner per shutdown herunterzufahren, so ist dies problematisch. Der Befehl braucht Root-Rechte. Man kann jedoch einzelnen Benutzern ermöglichen, shutdown auszuführen, ohne ein Passwort einzugeben zu brauchen. Hierzu muss [:sudo:] über den Befehl [4] {{{#!vorlage Befehl sudo visudo }}} konfiguriert und die Zeilen {{{ # User alias specification User_Alias ABSCHALTER = otto, anna, berta # Cmnd alias specification Cmnd_Alias DOWN = /sbin/shutdown, /sbin/halt, /sbin/reboot # User privilege specification ABSCHALTER ALL = NOPASSWD: DOWN }}} (am Ende der Datei) eingefügt werden. In diesem Beispiel würden die drei Benutzer `otto, anna, berta` den Rechner über z.B. {{{#!vorlage Befehl sudo shutdown -h now }}} herunterfahren können, ohne dass sie nach einem Passwort gefragt werden. Eine andere einfache Lösung besteht darin, jedem Benutzer das Recht zum Ausführen des shutdown-Befehls einzuräumen, in man das entsprechende SUID-Bit, wie in [:chmod#SUID-bit:] beschrieben, setzt: {{{#!vorlage Befehl sudo chmod +s /sbin/shutdown }}} Dieses Vorgehen ist meist nur bei Desktop-Systemen mit einem einzigen Benutzer sinnvoll. === Die D-Bus Methode === Um über D-Bus herunterfahren zu können, gibt es verschiedene Schnittstellen, die angesprochen werden können (siehe z.B. nachfolgend unter GNOME etc.). Über ConsoleKit gibt es eine Methode, die prinzipiell bei allen Systemen funktioniert, die das Paket '''consolekit''' installiert haben. {{{#!vorlage Befehl dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Stop #zum Herunterfahren dbus-send --system --print-reply --dest=org.freedesktop.ConsoleKit /org/freedesktop/ConsoleKit/Manager org.freedesktop.ConsoleKit.Manager.Restart #zum Neustarten }}} === GNOME === {{{#!vorlage Befehl gnome-session-quit --power-off # Zeigt den Dialog zum Ausschalten, Neustarten usw. an. gnome-session-quit --logout # Zeigt den Dialog zum Abmelden oder Benutzerwechsel an. gnome-session-quit --logout --no-prompt # Meldet jetzt den Benutzer direkt ab (sofern dies nicht von einem Programm verhindert wird). }}} Siehe auch `gnome-session-quit --help-all`. === KDE === Kubuntu kann man u.a. über den Session-Manager via D-Bus herunterfahren. Als Beispiel dient das sofortige Abmelden, ohne Rückfrage oder Herunterfahren. Verwendung mit `dbus`: {{{#!vorlage befehl qdbus org.kde.ksmserver /KSMServer logout 0 3 3}}} Verwendung mit `dbus-send`: {{{#!vorlage Befehl dbus-send --print-reply --dest=org.kde.ksmserver /KSMServer org.kde.KSMServerInterface.logout int32:0 int32:3 int32:3 }}} Die drei ganzzahligen Parameter am Ende haben folgende Funktionen: {{{#!vorlage Tabelle Arg.Nr. Bedeutung Wert 0 Wert 1 Wert 2 Wert 3 ++++ 1 Bestätigungsabfrage nein ja ++++ 2 Methode/Typ kein shutdown reboot halt logout ++++ 3 Modus wartet auf das Beenden aller aktiven Sessions jetzt versuchen. Falls weitere Sessions aktiv sind, hat der gesamte Befehl keine Auswirkung erzwingen Nutzer per Popup entscheiden lassen ++++ }}} Weitere Informationen findet man im [github:KDE/plasma-workspace/blob/master/libkworkspace/kworkspace.h:Header von KWorkSpace]. = Server mittels ACPI herunterfahren = Für kleine Heimserver ist es möglicherweise interessant, diese auch über den Einschalter am PC-Gehäuse herunterzufahren. Das erspart eventuell ungeübten Benutzern, am Server den Monitor einzuschalten, sich anzumelden und dann den Befehl `sudo halt` zum Herunterfahren einzugeben. Durch Installation des Paketes '''acpid''' können auch Rechner ohne grafische Oberfläche heruntergefahren werden. Bei Rechnern mit grafischer Oberfläche ist das Paket normalerweise dabei, ansonsten muss es installiert werden und kann dann sofort verwendet werden. {{{#!vorlage Paketinstallation acpid }}} {{{#!vorlage Warnung Wichtig ist noch, den Schalter nicht länger als 5 Sekunden gedrückt zu halten. Ansonsten schaltet sich das Netzteil hart ab und kann so einen Datenverlust verursachen. Gegen unabsichtliches Drücken des Schalters schützt ein eigener Serverschrank oder eine ähnliche Maßnahme. }}} = Ungewolltes Abschalten vermeiden = Arbeitet man in einem Netzwerk mit mehreren Rechnern, die man per [:SSH:] steuert, so kann es leicht zu Verwechselungen kommen, so dass man aus Versehen den falschen Rechner herunterfährt. Dieses kann man mit dem Paket {{{#!vorlage Paketinstallation molly-guard, universe }}} vermeiden. Hat man molly-guard auf einem Rechner installiert [1], auf dem man sich per SSH angemeldet hat, und fährt den Rechner herunter, so wird man nach dem [:Rechnername:Hostnamen] des Rechners gefragt. Erst wenn man diesen korrekt eingegeben hat, wird der Rechner tatsächlich heruntergefahren. {{{#!vorlage Befehl sudo shutdown -h now }}} {{{ W: molly-guard: SSH session detected! Please type in hostname of the machine to shutdown: }}} Ist man lokal angemeldet, so beeinflusst molly-guard das Herunterfahren nicht. Ist man per SSH angemeldet, arbeitet jedoch mit [:Screen:SCREEN] in einer virtuellen Konsolensitzung, so wird beim Herunterfahren nicht nach dem Rechnernamen gefragt. Möchte man trotzdem gefragt werden, kann man in der Datei '''/etc/molly-guard/rc''' folgenden Wert eintragen bzw. auskommentieren. {{{ ALWAYS_QUERY_HOSTNAME=true }}} Nach dieser Änderung wird bei jedem Herunterfahren nach dem Hostnamen gefragt, auch in einer lokalen Sitzung. = Problembehebung = == Rechner schaltet sich nicht ab == Es kommt vor, dass sich der Rechner nach dem Herunterfahren nicht abschaltet. Man bekommt dann die Meldung, dass man den Rechner nun abschalten kann. Erst wenn man den Taster am Rechner betätigt, schaltet sich der Rechner ab. Um dieses zu lösen, kann man verschiedene Dinge probieren. === ACPI erzwingen === Es kommt vor, dass Ubuntu nicht erkennt, dass der Rechner [wikipedia:Advanced_Configuration_and_Power_Interface:ACPI]-Funktionen bietet. Dann kann man Ubuntu dazu zwingen, ACPI zu nutzen. Man bearbeitet, wie in [:GRUB_2/Konfiguration: Grub 2 Konfiguration] beschrieben, die Datei '''/etc/default/grub''', wobei die Zeile {{{ GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" }}} um die Option `acpi=force` ergänzt wird: {{{ GRUB_CMDLINE_LINUX_DEFAULT="quiet splash acpi=force" }}} Nun aktualisiert man die Konfiguration von Grub mittels des Befehls [4] {{{#!vorlage Befehl sudo update-grub }}} Nach dem nächsten Neustart schaltet sich der Rechner nun korrekt ab. === Behilfs-Bootoptionen der Installation löschen === Bei der [:Installation:] des Betriebssystems kann es zu [:Bootoptionen#Praxisbeispiele:Problemen] kommen, so das man mit geeigneten [:Bootoptionen#Optionen:Bootoptionen] den Systemstart beeinflussen muß. Diese Optionen werden in die Datei '''/etc/default/grub''' des Installierten Systems übertragen, damit nach Installation das System ohne weitere Eingriffe starten kann. In der Regel werden solche Behilfs-Bootoptionen nach einer [:Aktualisierungen: Aktualisierung] bzw. nach einem [:apt-get#Kommandos: Update] überflüssig und sollten dann entfernt werden, da diese zum Beispiel das automatisierte Herunterfahren und Ausschalten des Computers verhindern können. Dazu bearbeitet man, wie in [:GRUB_2/Konfiguration:GRUB-2-Konfiguration] beschrieben, die Datei '''/etc/default/grub'''. Beispielauszug der Datei '''/etc/default/grub''' unmittelbar nach der Installation mit Behilfs-Bootoptionen: {{{ GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX="priority=low acpi=off noapic nolapic nomodeset" }}} Beispielauszug der Datei '''/etc/default/grub''' mit den im Idealfall nötigsten Bootoptionen: {{{ GRUB_CMDLINE_LINUX_DEFAULT="quiet splash" GRUB_CMDLINE_LINUX="" }}} Es sei an dieser Stelle nochmals darauf hingewiesen, das im Standard Boot-Login beide Zeilen zum einen `GRUB_CMDLINE_LINUX_DEFAULT` und zum anderen `GRUB_CMDLINE_LINUX` berücksichtigt und verarbeitet werden. Siehe hierzu auch den Abschnitt [:Bootoptionen#Dauerhafte-Konfiguration-eines-Systems:Dauerhafte Konfiguration eines Systems]. Abschließend aktualisiert man die Konfiguration von Grub mittels des Befehls [4] {{{#!vorlage Befehl sudo update-grub }}} Nach dem nächsten Neustart schaltet sich der Rechner nun korrekt ab. === Power-Off über APM === Alternativ kann man Ubuntu anweisen, dass es speziell zum Abschalten des Rechners das veraltete [wikipedia:Advanced_Power_Management:APM] nutzen soll. Dieses Verfahren wird heutzutage nicht mehr genutzt, kann aber bei sehr alter Hardware oder ACPI-Problemen eine Lösung sein. Dazu editiert man, wie bei [#ACPI-erzwingen ACPI erzwingen] beschrieben, die Konfigurationsdatei von GRUB 2 und fügt `apm=power_off` ein. Die Schreibweisen `power-off` und `poweroff` sind Synonyme, funktionieren also ebenfalls. Danach muss GRUB 2 noch aktualisiert werden: {{{#!vorlage Befehl sudo update-grub }}} Anschließend muss dem APM-Kernelmodul noch mitgeteilt werden, dass es den Rechner abschalten soll. Dazu muss die Datei '''/etc/modules''' mit Root-Rechten bearbeitet [5] und die Zeile {{{ apm power_off=1 }}} eingefügt werden. Mit einem Neustart des Systems kann der Erfolg der Maßnahme überprüft werden. = Links = == Intern == * [:Howto/Notwendigkeit des Neustarts ermitteln:] - checken und benachrichtigen lassen, ob ein Rechner neugestartet werden muss == Extern == * [launchpad:gpoweroff:Gpoweroff Shutdown utility] {en} - auf GShutdown basierendes Programm # tag: System, GNOME, KDE, Übersicht, Server