table of contents
other sections
REBOOT(2) | Podręcznik programisty Linuksa | REBOOT(2) |
NAZWA¶
reboot - przeładowanie systemu lub włączenie/wyłączenie Ctrl-Alt-DelSKŁADNIA¶
/* Wywołania systemowe pod biblioteką libc4 i libc5 są identyczne,a od wersji jądra 2.1.30 istnieją symboliczne nazwy LINUX_REBOOT_*
dla stałych oraz czwarty parametr wywołania: */
biblioteczne jest jednoargumentową funkcją opakowującą
trójargumentowe wywołanie systemowe: */
OPIS¶
Wywołanie reboot() przeładowuje system albo włącza lub wyłącza kombinację klawiszy odpowiedzialną za przeładowanie systemu (nazywaną w skrócie CAD od domyślnej kombinacji Ctrl-Alt-Del, którą można zmienić przy pomocy loadkeys(1)). To wywołanie systemowe się nie powiedzie (z kodem EINVAL), chyba że magic wynosi LINUX_REBOOT_MAGIC1 (czyli 0xfee1dead) i magic2 jest równe LINUX_REBOOT_MAGIC2 (czyli 672274793). Jednakże magic2 może przyjmować dodatkowe wartości: od wersji 2.1.17 - LINUX_REBOOT_MAGIC2A (czyli 85072278), od wersji 2.1.97 - LINUX_REBOOT_MAGIC2B (czyli 369367448), a od wersji 2.5.71 również LINUX_REBOOT_MAGIC2C (czyli 537993216). (Szesnastkowe wartości powyższych stałych mają znaczenie). Parametr cmd może przyjmować następujące wartości:- LINUX_REBOOT_CMD_CAD_OFF
- (RB_DISABLE_CAD, 0). CAD jest wyłączony, co oznacza, że naciśnięcie kombinacji klawiszy CAD wyśle procesowi init (procesowi nr 1) sygnał SIGINT i ten proces zdecyduje, jaką akcję wykonać (być może: zabicie wszystkich procesów, sync, restart).
- LINUX_REBOOT_CMD_CAD_ON
- (RB_ENABLE_CAD, 0x89abcdef). CAD jest włączony, co oznacza, że naciśnięcie klawiszy CAD wywoła od razu akcję skojarzoną z LINUX_REBOOT_CMD_RESTART.
- LINUX_REBOOT_CMD_HALT
- (RB_HALT_SYSTEM, 0xcdef0123; od wersji 1.1.76). Wypisywany jest komunikat "System halted.", a system jest zatrzymywany. Kontrola jest przekazywana do monitora ROM, jeżeli istnieje. Jeżeli nie wywołano wcześniej sync(2), niezapisane dane zostaną utracone.
- LINUX_REBOOT_CMD_KEXEC (od wersji 2.6.13 systemu Linux)
- Uruchamia jądro załadowane wcześniej za pomocą kexec_load(2). Opcja jest dostępna tylko wtedy, jeśli jądro zostało skonfigurowane z CONFIG_KEXEC.
- LINUX_REBOOT_CMD_POWER_OFF
- (0x4321fedc; od wersji 2.1.30). Wypisywany jest komunikat "Power down.", system jest zatrzymywany i jeżeli jest to możliwe, zasilanie jest odłączane. Jeżeli nie wywołano wcześniej sync(2), niezapisane dane zostaną utracone.
- LINUX_REBOOT_CMD_RESTART
- (RB_AUTOBOOT, 0x1234567). Wypisywany jest komunikat "Restarting system.", a natychmiast po tym następuje przeładowanie systemu. Jeżeli nie wywołano wcześniej sync(2), niezapisane dane zostaną utracone.
- LINUX_REBOOT_CMD_RESTART2
- (0xa1b2c3d4; od wersji 2.1.30). Wypisywany jest komunikat "Restarting system with command '%s'" i natychmiast po nim system jest przeładowywany (używając polecenia podanego w argumencie arg). Jeżeli nie wywołano wcześniej sync(2), niezapisane dane zostaną utracone.
WARTOŚĆ ZWRACANA¶
Jeśli podano wartość cmd powodującą zatrzymanie lub zrestartowanie systemu, to reboot() nie powraca. W przypadku innych wartości parametru cmd zwracane jest zero, jeśli funkcja zakończyła się powodzeniem. We wszystkich przypadkach (niezależnie od wartości cmd) w razie wystąpienia błędu zwracane jest -1 i zmienna errno jest ustawiana na odpowiednią wartość.BŁĘDY¶
- EFAULT
- Problem pobierania danych z przestrzeni użytkownika w wypadku wywołania LINUX_REBOOT_CMD_RESTART2.
- EINVAL
- Niepoprawne liczby magiczne lub cmd.
- EPERM
- Proces wywołujący nie ma odpowiednich uprawnień, aby wywołać reboot(); wymagane jest posiadanie przywileju CAP_SYS_BOOT.
ZGODNE Z¶
Funkcja reboot() jest specyficzna dla Linuksa i nie powinna być używana w programach, które mają działać pod różnymi systemami.ZOBACZ TAKŻE¶
sync(2), bootparam(7), capabilities(7), ctrlaltdel(8), halt(8), reboot(8)O STRONIE¶
Angielska wersja tej strony pochodzi z wydania 3.40 projektu Linux man-pages. Opis projektu oraz informacje dotyczące zgłaszania błędów można znaleźć pod adresem http://www.kernel.org/doc/man-pages/.TŁUMACZENIE¶
Autorem polskiego tłumaczenia niniejszej strony podręcznika man jest Robert Luberda <robert@debian.org>. 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ą 3.40 oryginału.2010-10-31 | Linux |