Wie kann ich das System nach einer bestimmten Zeit automatisch herunterfahren?

Antworten:

49

Öffnen Sie ein Terminalfenster und geben Sie Folgendes ein:

sudo shutdown -h +60

und ersetzen Sie einfach 60 durch die gewünschte Anzahl von Minuten.

Mehr Infos hier:

http://ubuntuforums.org/archive/index.php/t-473173.html http://www.linux.org/lessons/beginner/l5/lesson5a.html

Daniel
quelle
2
Der -PParameter (Ausschalten) scheint ebenfalls eine gute Idee zu sein.
htorque
shutdown + m 60 funktioniert bei mir nicht. gibt mir eine Fehlermeldung und sagt, dass es einen ungültigen Zeitwert gibt.
NES
Ich fand es seltsam ... es sollte nicht "+ m 60" sein, sondern "+60" (oder eher "-h +60"). Das Ende dieser Seite scheint zu wissen, wie es funktioniert: linux.org/lessons/beginner/l5/lesson5a.html .
Daniel
"shutdown -P 1" - funktioniert gut und fährt das System in 1 Minute herunter, es wird keine Zeiteinheit benötigt.
2.
2
Eigentlich ist es sudo ..... weil root-Rechte benötigen
Shirish Herwade
8
  • Sie können gshutdown verwenden Installieren Sie gshutdown
  • Nach der Installation finden Sie es unter Anwendungen → Zubehör → GShutdown Alt-Text
  • Schauen Sie sich auch diese Methode an .
karthick87
quelle
Kann mir jemand sagen, warum sie abstimmen?
karthick87
2
Ich habe nicht gewählt. Aber Gshutdown funktioniert hier nicht reibungslos. Wenn ich Herunterfahren wähle, meldet es stattdessen den Benutzer ab?
NES
Ich auch, es meldet den Benutzer aus und der Laptop geht in den Schlafmodus
Lewis4u
2

Da das Thema abt Herunterfahren PC nach bestimmten Zeit der Inaktivität wird umgeleitet zu diesem Thema, werde ich dieses Problem hier erklären.

Ich habe viel Zeit aufgewendet, um dieses Problem zu lösen. Daher finde ich es nützlich, es zu teilen, um das gleiche Problem für andere einfach zu machen. Ich habe verschiedene Programme ausprobiert, aber sie haben bei mir nicht funktioniert. Daher fand ich die Verwendung eines kurzen Skripts mit Cronjob die beste Lösung.

Zuerst bezog ich mich auf das zeitgesteuerte Herunterfahren - Herunterfahren nach 30 Minuten

Ich werde es unten kopieren und dann Verbesserungen erklären, damit es funktioniert:

Installieren Sie xprintidle. Dieses Tool gibt die Leerlaufzeit eines Benutzers an.

sudo apt-get install xprintidle

Erstellen Sie ein Skript autoshutdown.sh, das die Leerlaufzeit überprüft und den Computer anweist, herunterzufahren, wenn er 30 Minuten lang im Leerlauf ist.

idle=$(xprintidle)

if [ $idle -gt 1800000 ]; then
    shutdown -h now
fi

Machen Sie dazu einen Cronjob, der von Zeit zu Zeit prüft, ob das System zu lange im Leerlauf war und ob es länger als 30 Minuten im Leerlauf war, wird es heruntergefahren. Beachten Sie, dass der Cronjob für den Root-Benutzer erstellt werden muss.


Dieses Skript benötigt einige Verbesserungen, um zu funktionieren:

idle=`env DISPLAY=:0 su OUR_USER -c xprintidle 2>&1`

OUR_USER ist der Benutzer, auf den wir uns beziehen, um die Leerlaufzeit zu überprüfen (kein Root-Benutzer)

DISPLAY=:0ist für eine Desktop-Anzeige korrekt (führen Sie den envBefehl aus, um DISPLAYIhre Situation einzulesen )

Wenn das Skript von ausgeführt wird OUR_USER, kann die obige Zeile reduziert werden:

idle=`env DISPLAY=:0 xprintidle 2>&1`

Dieses Thema wird unter http://ubuntuforums.org/showthread.php?t=1069602 beschrieben

Wenn das Skript von ausgeführt wird OUR_USER, shutdownsollte vor dem Befehl Folgendes stehensudo

sudo shutdown -h now

Mein Skript wurde von Cron aus Zeile für Zeile in der Cron-Datei ausgeführt:

*/5 * * * * /home/OUR_USER/autoshutdown.sh 
  • alle 5 Minuten
  • OUR_USER sollte für den Benutzer, auf den wir verweisen, so früh wie möglich ersetzt werden.

Wenn das Skript nicht von root ausgeführt wird, sollten wir daran denken, die folgende Zeile hinzuzufügen:

ALL ALL=(ALL) NOPASSWD: /sbin/shutdown 

In der sudoers- Datei muss für den Befehl shutdown kein Kennwort eingegeben werden.


Ich habe versucht, solche Cronjobs auf 2 ähnliche Distribution Lubuntu 12.04.4 RC LXLE 32-Bit ( http://www.lxle.net/ )

In einem System funktioniert es nur mit dem in der Datei festgelegten Root-Cronjob:

/ var / spool / cron / crontabs / root


VORBEHALT

Ein weiteres Problem ist, dass xprintidle in meinem System manchmal zufällige und manchmal logisch inkrementelle Werte für mich angegeben hat . Das Endergebnis: Mein System wurde normalerweise nach 20 Minuten heruntergefahren, wenn ich den maximalen Leerlaufwert auf 30 Minuten eingestellt habe. Ich denke, der Täter ist xscreensaver, der nicht funktioniert, wie durch die eingegebenen Parameter festgelegt.

Michał
quelle