reboot(2) System Calls Manual reboot(2) NAZWA reboot - przeladowanie systemu lub wlaczenie/wylaczenie Ctrl-Alt-Del BIBLIOTEKA Standardowa biblioteka C (libc, -lc) SKLADNIA /* Since Linux 2.1.30 there are symbolic names LINUX_REBOOT_* for the constants and a fourth argument to the call: */ #include /* Definicja stalych LINUX_REBOOT_*/ #include /* Definicja stalych SYS_* */ #include int syscall(SYS_reboot, int magic, int magic2, int cmd, void *arg); /* Pod glibc i wiekszoscia libc alternatywnych (w tym uclibc, dietlibc, musl i kilku innych) niektore stale dostaly nazwy RB_*, a wywolanie biblioteczne jest jednoargumentowa funkcja opakowujaca wywolanie systemowe: */ #include /* Definicja stalych RB_* */ #include int reboot(int cmd); OPIS Wywolanie reboot() przeladowuje system albo wlacza lub wylacza kombinacje klawiszy odpowiedzialna za przeladowanie systemu (nazywana w skrocie CAD od domyslnej kombinacji Ctrl-Alt-Del, ktora mozna zmienic przy pomocy loadkeys(1)). This system call fails (with the error EINVAL) unless magic equals LINUX_REBOOT_MAGIC1 (that is, 0xfee1dead) and magic2 equals LINUX_REBOOT_MAGIC2 (that is, 0x28121969). However, since Linux 2.1.17 also LINUX_REBOOT_MAGIC2A (that is, 0x05121996) and since Linux 2.1.97 also LINUX_REBOOT_MAGIC2B (that is, 0x16041998) and since Linux 2.5.71 also LINUX_REBOOT_MAGIC2C (that is, 0x20112000) are permitted as values for magic2. (The hexadecimal values of these constants are meaningful.) Parametr cmd moze przyjmowac nastepujace wartosci: LINUX_REBOOT_CMD_CAD_OFF (RB_DISABLE_CAD, 0). CAD jest wylaczony, co oznacza, ze nacisniecie kombinacji klawiszy CAD wysle procesowi init (procesowi nr 1) sygnal SIGINT i ten proces zdecyduje, jaka akcje wykonac (byc moze: zabicie wszystkich procesow, sync, restart). LINUX_REBOOT_CMD_CAD_ON (RB_ENABLE_CAD, 0x89abcdef). CAD jest wlaczony, co oznacza, ze nacisniecie klawiszy CAD wywola od razu akcje skojarzona 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, jezeli istnieje. Jezeli nie wywolano wczesniej sync(2), niezapisane dane zostana utracone. LINUX_REBOOT_CMD_KEXEC (RB_KEXEC, 0x45584543, od wersji 2.6.13 Linuksa). Uruchamia jadro zaladowane wczesniej za pomoca kexec_load(2). Opcja jest dostepna tylko wtedy, jesli jadro zostalo 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 jezeli jest to mozliwe, zasilanie jest odlaczane. Jezeli nie wywolano wczesniej sync(2), niezapisane dane zostana utracone. LINUX_REBOOT_CMD_RESTART (RB_AUTOBOOT, 0x1234567). Wypisywany jest komunikat "Restarting system.", a natychmiast po tym nastepuje przeladowanie systemu. Jezeli nie wywolano wczesniej sync(2), niezapisane dane zostana 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 przeladowywany (uzywajac polecenia podanego w argumencie arg). Jezeli nie wywolano wczesniej sync(2), niezapisane dane zostana utracone. LINUX_REBOOT_CMD_SW_SUSPEND (RB_SW_SUSPEND, 0xd000fce1; od wersji 2.5.18 Linuksa). System jest wstrzymywany (hibernowany) na dysk. Opcja jest dostepna tylko wtedy, jesli jadro zostalo skonfigurowane z CONFIG_HIBERNATION. Tylko administrator moze wywolac funkcje reboot(). Dokladny wynik powyzszych akcji zalezy od architektury komputera. Obecnie (2.1.122) dodatkowy parametr nie ma zadnego znaczenia dla architektury i386, jednakze typ restartowania systemu moze byc okreslony w argumentach linii polecen jadra ("reboot=...") jako restart albo cieply, albo zimny oraz albo twardy, albo przez BIOS. Zachowanie wewnatrz przestrzeni nazw PID Since Linux 3.4, if reboot() is called from a PID namespace other than the initial PID namespace with one of the cmd values listed below, it performs a "reboot" of that namespace: the "init" process of the PID namespace is immediately terminated, with the effects described in pid_namespaces(7). The values that can be supplied in cmd when calling reboot() in this case are as follows: LINUX_REBOOT_CMD_RESTART LINUX_REBOOT_CMD_RESTART2 The "init" process is terminated, and wait(2) in the parent process reports that the child was killed with a SIGHUP signal. LINUX_REBOOT_CMD_POWER_OFF LINUX_REBOOT_CMD_HALT The "init" process is terminated, and wait(2) in the parent process reports that the child was killed with a SIGINT signal. For the other cmd values, reboot() returns -1 and errno is set to EINVAL. WARTOSC ZWRACANA For the values of cmd that stop or restart the system, a successful call to reboot() does not return. For the other cmd values, zero is returned on success. In all cases, -1 is returned on failure, and errno is set to indicate the error. BLEDY EFAULT Problem pobierania danych z przestrzeni uzytkownika w wypadku wywolania LINUX_REBOOT_CMD_RESTART2. EINVAL Niepoprawne liczby magiczne lub cmd. EPERM The calling process has insufficient privilege to call reboot(); the caller must have the CAP_SYS_BOOT inside its user namespace. STANDARDY Linux. ZOBACZ TAKZE systemctl(1), systemd(1), kexec_load(2), sync(2), bootparam(7), capabilities(7), ctrlaltdel(8), halt(8), shutdown(8) TLUMACZENIE Autorami polskiego tlumaczenia niniejszej strony podrecznika sa: Robert Luberda i Michal Kulach Niniejsze tlumaczenie jest wolna dokumentacja. Blizsze informacje o warunkach licencji mozna uzyskac zapoznajac sie z GNU General Public License w wersji 3 lub nowszej. Nie przyjmuje sie ZADNEJ ODPOWIEDZIALNOSCI. Bledy w tlumaczeniu strony podrecznika prosimy zglaszac na adres listy dyskusyjnej . Linux man-pages 6.06 31 pazdziernika 2023 r. reboot(2)