SHUTDOWN(8) | Podręcznik administratora systemu Linux | SHUTDOWN(8) |
shutdown - wyłącza system
/sbin/shutdown [-akrhPHfFnc] [-t sek] czas [ostrzeżenie]
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.
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.
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.
The -H option just sets the init environment variable INIT_HALT to HALT, and the -P option just sets that variable to POWEROFF. The script (usually /etc/init.d/halt) that calls the halt(8) program as the last thing in the shutting down sequence should check this environment variable and call the halt(8) program with the right options for these options to actually have any effect.
/fastboot /etc/inittab /etc/init.d/halt /etc/init.d/reboot /etc/shutdown.allow
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.
Miquel van Smoorenburg, miquels@cistron.nl
Autorami polskiego tłumaczenia niniejszej strony podręcznika są: Wojtek Kotwica <wkotwica@post.pl> i Michał Kułach <michal.kulach@gmail.com>
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach licencji można uzyskać zapoznając się z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres manpages-pl-list@lists.sourceforge.net.
12 listopada 2003 |