Automatyczne wyłączanie w określonych godzinach?

18

Wiem, że mogę użyć (sudo?) shutdown -h hh:mmW oknie terminala do zamknięcia systemu, jednak zalogowany użytkownik jest użytkownikiem kiosku, który jest zablokowany w taki sposób, że terminal (lub dowolne okno inne niż Firefox) , jeśli o to chodzi) nie można otworzyć.

Moje pytanie brzmi:
czy istnieje sposób, aby to zrobić bez otwierania okna terminala? Czytałem o cronie, ale nie potrafię tego w pełni zrozumieć.
Jak mogę zmienić czas wyłączenia w zależności od dnia?

MrAxlee
źródło
Czy chcesz się zamknąć o 02:00?
αғsнιη
Nie, przepraszam, właśnie tego użyto w przykładzie, który przeczytałem. Zwykle o 11:30, ale zastanawiałem się, czy istnieje sposób na określenie różnych godzin dla różnych dni?
MrAxlee
1
Możesz odnieść się do adresu URL w celu automatycznego wyłączenia. askubuntu.com/questions/19774/…
vembutech
1
@vembutech To pytanie dotyczy zamknięcia po upływie określonego czasu - a nie zamknięcia w określonym czasie - jednak chociaż łatwo byłoby to dostosować do moich potrzeb, nadal nie mogę uruchomić dodatkowych okien oprócz Firefoksa. Dziękuję za odpowiedź! Wydaje się to znacznie prostsze niż używanie crona i najprawdopodobniej
użyję
@MrAxlee ... Czy chcesz, aby system został zamknięty n godzin po włączeniu?
Kaz Wolfe

Odpowiedzi:

31

Cron będzie do tego bardzo dobrze działał.

Dodaj poniższy wiersz (z poprawkami) na końcu /etc/crontab:

30 23 * * * root shutdown -h now

O 23:30 (23:30) kiosk zostanie zamknięty. Bez względu na zalogowanego użytkownika komenda zamykania działa jako root.

(Jeśli nie chcesz używać globalnego pliku crontab, zaloguj się jako root i użyj crontab -e. Użyj tej samej powyższej składni bez root).


Format Cron:

MM HH DD OO WW command

MM: Minuta, 0-59
HH: 24-godzinna godzina
DD: Dzień miesiąca
OO: Miesiąc
WW: Dzień tygodnia (niedziela to 0, poniedziałek to 1)
command: Wyjaśnienia

Kaz Wolfe
źródło
@JacobVlijm Kiedy to zostało dodane? Nie widzę tego w oficjalnych dokumentach Crona .
Kaz Wolfe
1
Sprawdzę to ...
Jacob Vlijm
1
z crontab (5): Format systemu crontab, / etc / crontab zawiera kolumnę who, która nie istnieje w crontab użytkownika. W crontab systemu cron uruchamia polecenie jako użytkownik określony w tej kolumnie. W crontab użytkownika wszystkie polecenia działają jako użytkownik, który utworzył crontab.
Jacob Vlijm
@Whaaaaaat Świetna odpowiedź, działa idealnie, dzięki !. Jaka jest różnica między -hi -s?
MrAxlee
1
@MrAxlee -snie wydaje się być „właściwą składnią”. -hoznacza zatrzymanie lub wyłączenie systemu (wybór systemu - preferowane zamknięcie)
Kaz Wolfe
6

Koleżanka wydaje się być najlepszym sposobem, ponieważ możesz określić różne godziny dla różnych dni. W systemach opartych na Gnome możesz po prostu zainstalować GNOME Shedule Tasks, używając

sudo apt-get install gnome-schedule

a następnie skonfiguruj cronjob za pomocą GUI.

w przeciwnym razie będziesz musiał użyć, sudo crontab -ea następnie dodać następujące wiersze

30 11 * * 1-5 /sbin/shutdown -h now
30 10 * * 0,6 /sbin/shutdown -h now

spowoduje to wyłączenie komputera o 11:30 od poniedziałku do piątku oraz o 10:30 w sobotę i niedzielę. Struktura jest bardzo prosta:

minute (0-59), hour (0-23, 0 = midnight), day (1-31), month (1-12), weekday (0-6, 0 = Sunday), command 

Aby uzyskać więcej informacji na ten temat, możesz również sprawdzić CronHowto

Christian Rauchenwald
źródło
2
Musiałem użyć /sbin/shutdownzamiast tego, shutdownponieważ moja ścieżka PATH roota była inna niż w terminalu, w którym próbowałem skryptu.
Jaakko,
3

Możemy zamknąć się automatycznie w określonym czasie, po prostu uruchamiając polecenie sudo poweroffw crontab.

Jeśli chcesz wyłączyć system codziennie o 18:30. Wpisz terminal:

sudo crontab -e

edytować

30 18 * * * poweroff
stokrotka
źródło
@mrm Istnieją alternatywne metody, może istnieć wiele różnych rozwiązań konkretnego problemu i odpowiedzi na nie. Czy odpowiedź nie jest przydatna, czy nie? Proszę, abyś nie głosował za odpowiedzią lub pytaniem, jeśli nie masz jasności na ten temat. Przeczytaj pytanie poprawnie i sprawdź, czy odpowiedź dotyczy tego konkretnego pytania, czy nie. Jeśli nadal masz dylemat, możesz zapytać na Ask Ubuntu Meta lub tutaj, a następnie podjąć decyzję.
stokrotka
W jednym wierszu crontab masz dwa problemy: poweroffpomija skrypty zamykające, które mogą być ważne, powiedzmy, bezpiecznie zamykaj bazę danych lub cokolwiek innego, i masz sudoroot crontab, który nie jest potrzebny. Nie zadałeś również pytania, jak odwoływać się do różnych dni tygodnia. Więc nie, to nie jest alternatywna metoda. W tej chwili są to dwa błędy i pominięcie. Dwie pozostałe odpowiedzi udzielone rok przed twoją są poprawne i faktycznie działają.
mrm
@mrm Cóż, używam tego skryptu przez ostatnie trzy lata i nie widziałem żadnego problemu. I tak, ta alternatywna, a także poprawna przydatna metoda. Que to automatyczne zamykanie w określonych godzinach. Istnieje polecenie zamknięcia i dla automatycznie określonego czasu możemy użyć crontab zgodnie z naszymi wymaganiami. Byłoby lepiej dla Ciebie, jeśli zadasz inne pytanie dotyczące twojego problemu.
stokrotka