Jak mogę automatycznie wyłączyć system po określonym czasie?

Odpowiedzi:

49

Otwórz okno terminala i wpisz:

sudo shutdown -h +60

i po prostu zamień 60 na dowolną liczbę minut, którą chcesz zabrać.

Więcej informacji tutaj:

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

Daniel
źródło
2
-PParametr (wyłączone zasilanie) wydaje się być dobrym pomysłem, zbyt.
htorque
shutdown + m 60 nie działa dla mnie. wyświetla mi komunikat o błędzie i mówi, że istnieje niepoprawna wartość czasu.
NES,
Myślałem, że to dziwne ... nie powinno być „+ m 60”, powinno być „+60” (a może bardziej jak „-h +60”. Dół tej strony wydaje się wiedzieć, jak to działa: linux.org/lessons/beginner/l5/lesson5a.html .
Daniel
„shutdown -P 1” - działa dobrze i zamyka system w ciągu 1 minuty, bez jednostki czasu.
n3rd
2
właściwie to sudo ..... ponieważ potrzebujesz uprawnień roota
Shirish Herwade
8
  • Możesz użyć gshutdown Zainstaluj gshutdown
  • Po instalacji można go znaleźć w Aplikacje → Akcesoria → GShutdown alternatywny tekst
  • Zobacz także tę metodę .
karthick87
źródło
Czy ktoś może mi powiedzieć, dlaczego głosuje w dół?
karthick87
2
nie oddałem głosu. Ale Gshutdown nie działa tutaj płynnie. Kiedy wybieram zamknięcie, zamiast tego wylogowuje użytkownika?
NES,
Ja również
wylogowuje
2

Ponieważ temat abt zamykania komputera po pewnym okresie bezczynności został przekierowany do tego tematu, wyjaśnię ten problem tutaj.

Spędziłem dużo czasu, aby rozwiązać ten problem, więc uważam, że warto go udostępnić, aby ten sam problem był prosty dla innych. Próbowałem już różnych programów, ale one dla mnie nie działają, więc najlepszym rozwiązaniem jest użycie krótkiego skryptu z cronjob .

Najpierw poleciłem opublikować Timed Shutdown - zamknięcie po 30 minutach

Skopiuję go poniżej, a następnie wyjaśnię ulepszenia, aby działało:

Zainstaluj xprintidle. To narzędzie podaje czas bezczynności użytkownika.

sudo apt-get install xprintidle

Utwórz skrypt autoshutdown.sh, który sprawdza czas bezczynności i instruuje komputer, aby zamknął się, jeśli był bezczynny przez 30 minut.

idle=$(xprintidle)

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

Wykonaj cronjob w tym celu, który od czasu do czasu sprawdza, czy system był zbyt długo bezczynny, a jeśli był bezczynny przez ponad 30 minut, wyłączy się. Pamiętaj, że cronjob musi być wykonany dla użytkownika root.


Ten skrypt wymaga pewnych ulepszeń, takich jak:

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

OUR_USER to użytkownik, do którego odnosimy się w celu sprawdzania czasu bezczynności (nie użytkownik root)

DISPLAY=:0jest poprawny dla jednego wyświetlacza na pulpicie (uruchom envpolecenie, aby odczytać DISPLAYw twojej sytuacji)

jeśli skrypt jest uruchamiany przez OUR_USER, wiersz powyżej można zmniejszyć:

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

Ten temat został opisany http://ubuntuforums.org/showthread.php?t=1069602

jeśli skrypt jest uruchamiany przez OUR_USER, shutdownpolecenie powinno być poprzedzone znakiemsudo

sudo shutdown -h now

Mój skrypt został uruchomiony z crona po wierszu w pliku cron:

*/5 * * * * /home/OUR_USER/autoshutdown.sh 
  • co 5 minut
  • OUR_USER powinien zostać zastąpiony wcześniejszym użytkownikiem, do którego się odnosimy.

Jeśli skrypt nie jest uruchamiany przez roota, powinniśmy pamiętać o dodaniu wiersza:

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

w pliku sudoers , więc polecenie zamknięcia nie będzie wymagało hasła do wykonania.


Próbowałem takich cronjobs na 2 podobnych dystrybucjach Lubuntu 12.04.4 RC LXLE 32-bit ( http://www.lxle.net/ )

W jednym systemie działa tylko przy użyciu root cronjob ustawionego w pliku:

/ var / spool / cron / crontabs / root


CAVEAT

Innym problemem jest to, że xprintidle w moim systemie czasami podawał mi losowe wartości, a czasem logicznie inkrementalne. Ostateczny wynik - mój system zwykle był wyłączany po 20 minutach, jeśli ustawię maksymalną wartość biegu jałowego na 30 minut. Myślę, że sprawcą jest xscreensaver, który nie działa zgodnie z ustawionymi parametrami.

Michał
źródło