SHUTDOWN(8)

NAZWA
shutdown - wyłączanie systemu

SKŁADNIA
/sbin/shutdown [-t sek] [-arkhncfF] 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żyj /etc/shutdown.allow.

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

-k  Nie wykonuj faktycznego wyłączenia; wyślij tylko do wszystkich komunikaty ostrzegawcze.

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

-h  Zatrzymaj (halt) po wyłączeniu systemu.

-n  [ODRADZANE] Nie wywołuj init(8) do wykonania wyłączenia, ale zrób to samodzielnie. Odradza się używania tej opcji, zaś jej wyniki nie zawsze są zgodne z oczekiwaniami.

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

-F  Wymuś fsck przy przeładowaniu.

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

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 hh:mm, gdzie hh 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) /etc/nologin powodujący, że programy takie jak login(1) nie zezwalają na nowe logowania użytkowników. 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). W przeciwnym wypadku za usunięcie tego pliku, by użytkownicy mogli się logować, odpowiedzialne są systemowe skrypty inicjujące i kończące.

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 (dodaj 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.

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

BŁĘDY
Nie jest to faktycznie błąd, ale większość 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.

AUTOR
Miquel van Smoorenburg, miquels@cistron.nl

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