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: */ #include <unistd.h>
biblioteczne jest jednoargumentową funkcją opakowującą
trójargumentowe wywołanie systemowe: */ #include <unistd.h>
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 Linuksa). 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
- (RB_KEXEC, 0x45584543, od wersji 2.6.13 Linuksa). 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
- (RB_POWER_OFF, 0x4321fedc; od wersji 2.1.30 Linuksa). 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 Linuksa). 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.
- LINUX_REBOOT_CMD_SW_SUSPEND
- (RB_SW_SUSPEND, 0xd000fce1; od wersji 2.5.18 Linuksa). System jest wstrzymywany (hibernowany) na dysk. Opcja jest dostępna tylko wtedy, jeśli jądro zostało skonfigurowane z CONFIG_HIBERNATION.
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.71 projektu Linux man-pages. Opis projektu, informacje dotyczące zgłaszania błędów, oraz najnowszą wersję oryginału można znaleźć pod adresem http://www.kernel.org/doc/man-pages/.TŁUMACZENIE¶
Autorami polskiego tłumaczenia niniejszej strony podręcznika man są: Robert Luberda <robert@debian.org> 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ą 3.71 oryginału.2013-12-28 | Linux |