SHUTDOWN(8)

NAZWA
shutdown - wyłącza system

SKŁADNIA
/sbin/shutdown [-akrhPHfFnc] [-t sek] czas [ostrzeżenie]

OPIS
shutdown w bezpieczny sposób wyłącza system. Wszyscy zalogowani użytkownicy powiadamiani są o rozpoczętym wyłączaniu, zaś rozpoczynanie nowych sesji pracy przez login(1) jest blokowane. Możliwe jest zamknięcie i wyłączenie systemu natychmiastowe lub po zadanym czasie. W pierwszej kolejności wszystkie procesy powiadamiane są o wyłączaniu systemu sygnałem SIGTERM. Daje to programom takim jak vi(1) czas na zachowanie edytowanego pliku, programom przetwarzającym pocztę i grupy dyskusyjne szansę na czyste zakończenie pracy itd. shutdown wykonuje swe zadanie sygnalizując procesowi init prośbę o zmianę poziomu pracy. Poziom pracy (runlevel) 0 używany jest do zatrzymywania systemu, zaś poziom 1 służy do przełączenia go w stan, w którym mogą być wykonywane zadania administracyjne i konserwacja systemu; jest to poziom domyślny jeżeli nie podano ani flagi -h ani -r polecenia shutdown. Jakie czynności wykonywane są podczas zatrzymywania bądź przeładowywania systemu możesz zobaczyć przeglądając odpowiednie dla danych poziomów pracy wpisy w pliku /etc/inittab.

OPCJE

-a  Używa /etc/shutdown.allow.

-k  Nie wykonuje faktycznego wyłączenia; wysyła tylko do wszystkich komunikaty ostrzegawcze.

-r  Przeładowuje (ang. reboot) po wyłączeniu systemu.

-h  Zatrzymuje lub wyłącza komputer po zamknięciu systemu.

-P  Czynnością podejmowaną przy zatrzymaniu systemu jest wyłączenie komputera.

-H  Modyfikator do opcji -h. Komputer jest zatrzymywany lub przełącza się do programu monitorującego rozruch (ang. boot monitor), w systemach które to obsługują. Musi być użyte z opcją -h.

-f  Pomija fsck (sprawdzanie systemów plików) podczas przeładowania.

-F  Wymusza fsck przy przeładowaniu.

-n  [PRZESTARZAŁE] Nie wywołuje init(8) do wykonania wyłączenia, ale robi to samodzielnie. Odradza się używania tej opcji, zaś jej wyniki nie zawsze są zgodne z oczekiwaniami.

-c  Anuluje już rozpoczęte wyłączanie systemu (nie działa z "shutdown now"). Przy tej opcji nie jest, oczywiście, możliwe podanie argumentu czas, ale można wprowadzić w wierszu poleceń komunikat wyjaśniający, który zostanie przesłany do wszystkich użytkowników.

-t sek
    Nakazuje programowi init(8) odczekanie sek sekund pomiędzy wysłaniem procesom ostrzeżenia i sygnału kill a zmianą na inny poziom pracy.

czas
    Kiedy wyłączyć system.

ostrzeżenie
    Komunikat ostrzegawczy, jaki ma zostać wysłany do wszystkich użytkowników.

Argument czas może posiadać różne formaty. Po pierwsze, może to być czas absolutny (ustalona godzina) w formacie gg:mm, gdzie gg jest godziną (1 lub 2 cyfry) a mm minutami godziny (dwucyfrowo). Po drugie, może być w formacie +m, gdzie m jest liczbą minut do odczekania. Słowo now (teraz) jest równoważnikiem +0.

Jeśli shutdown wywoływany jest z czasem opóźnienia, to tworzy plik sygnalizacyjny (advisory file) /run/nologin powodujący, że programy takie jak login(1) nie zezwalają na nowe logowania użytkowników. Plik jest tworzony pięć minut przed rozpoczęciem wyłączania systemu. Shutdown usuwa ten plik tylko wtedy, gdy zostanie zatrzymany przed wysłaniem sygnału do init (tj. zostanie anulowany lub coś się nie udało). Usuwa go również przed wywołaniem init do zmiany poziomu pracy.

Flaga -f oznacza "reboot fast" (szybkie przeładowanie). Tworzy plik sygnalizacyjny /fastboot, który może być testowany przez system przy ponownym uruchamianiu. Plik startowy rc może sprawdzać, czy powyższy plik istnieje i decydować o zaniechaniu uruchamiania fsck(1), gdyż system został wyłączony prawidłowo. Następnie proces startowy powinien usunąć /fastboot.

Flaga -F oznacza "force fsck" (wymuś fsck). Tworzy plik sygnalizacyjny /forcefsck, który może być testowany przez system przy ponownym uruchamianiu. Plik startowy rc może sprawdzać, czy powyższy plik istnieje i decydować o uruchomieniu fsck(1) ze specjalną flagą "force", tak by zostały sprawdzone nawet poprawnie odmontowane systemy plików. Następnie proces startowy powinien usunąć /forcefsck.

Flaga -n powoduje, że shutdown nie będzie wywoływać init, ale zabije samodzielnie wszystkie działające procesy. shutdown wyłączy następnie obsługę udziałów (quota), rozliczeń i obszaru wymiany (swap) oraz odmontuje wszystkie systemy plików.

KONTROLA DOSTĘPU
shutdown może być wywoływane z init(8), gdy zostaną wciśnięte magiczne klawisze CTRL-ALT-DEL, przez utworzenie odpowiedniego wpisu w /etc/inittab. Oznacza to, że każdy, kto posiada fizyczny dostęp do klawiatury konsoli może wyłączyć system. By zapobiec takiej sytuacji, shutdown może sprawdzać, czy na jednej z wirtualnych konsoli zalogowany jest upoważniony użytkownik. Jeżeli shutdown zostanie wywołany z argumentem -a (proszę dodać go do wywołania shutdown w /etc/inittab), to sprawdza czy istnieje plik /etc/shutdown.allow. Następnie porównuje nazwy użytkowników z tego pliku z listą osób zalogowanych na wirtualnej konsoli (z /var/run/utmp). Shutdown będzie kontynuować pracę tylko wtedy, gdy zalogowany jest jeden z upoważnionych użytkowników lub root. W przeciwnym wypadku wyświetli komunikat

shutdown: no authorized users logged in
[shutdown: brak zalogowanych upoważnionych użytkowników]

na (fizyczną) konsolę systemową. Plik /etc/shutdown.allow zawiera po jednej nazwie (loginname) użytkownika w wierszu. Dozwolone są wiersze puste i wiersze komentarzy (poprzedzone znakiem #). Obecnie dla tego pliku istnieje ograniczenie do 32 użytkowników.

Proszę zauważyć, że jeśli plik /etc/shutdown.allow nie istnieje, to argument -a jest ignorowany.

ZATRZYMANIE CZY WYŁĄCZENIE
Opcja -H ustawia jedynie zmienną środowiskową INIT_HALT programu init na HALT, natomiast opcja -P ustawia ją na POWEROFF. Skrypt shutdown, który wywołuje halt(8), jako ostatnią rzecz w sekwencji wyłączającej, powinien sprawdzić te zmienne środowiskowe i wywołać halt(8) z prawidłowymi opcjami, aby miały one jakiekolwiek znaczenie. Debian 3.1 (sarge) obsługuje to.

PLIKI
/fastboot
/etc/inittab
/etc/init.d/halt
/etc/init.d/reboot
/etc/shutdown.allow

BŁĘDY
Wielu użytkowników zapomina o podaniu argumentu czas i jest zakłopotana komunikatem o błędzie dawanym przez shutdown. Argument czas jest obowiązkowy; w 90 procentach przypadków argumentem tym będzie słowo now.

Init może przechwycić CTRL-ALT-DEL i rozpocząć wyłączenia jedynie w trybie konsolowym. Jeśli działa X Window System, to serwer X przetwarza wszystkie wciskane klawisze. Niektóre środowiska X11 umożliwiają przechwycenie kombinacji CTRL-ALT-DEL, ale to, co dokładnie stanie się po użyciu tej sekwencji, zależy od danego środowiska.

Shutdown nie jest zaprojektowany do działania z setuid. Plik /etc/shutdown.allow nie jest używany w odniesieniu do osoby wykonującej shutdown, sprawdza on JEDYNIE kto jest aktualnie zalogowany na konsoli/jednej z konsol.

AUTOR
Miquel van Smoorenburg, miquels@cistron.nl

ZOBACZ TAKŻE
fsck(8), init(8), halt(8), poweroff(8), reboot(8)

TŁUMACZENIE
Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Wojtek Kotwica (PTM) <wkotwica@post.pl> i Michał Kułach <michal.kulach@gmail.com>.

Polskie tłumaczenie jest częścią projektu manpages-pl; uwagi, pomoc, zgłaszanie błędów na stronie http://sourceforge.net/projects/manpages-pl/. Jest zgodne z wersją 2.88 oryginału.