Provided by: manpages-ru-dev_4.21.0-2_all 

ИМЯ
reboot - перезагружает систему и разрешает/запрещает использование комбинации Ctrl-Alt-Del
LIBRARY
Standard C library (libc, -lc)
СИНТАКСИС
/* Since Linux 2.1.30 there are symbolic names LINUX_REBOOT_*
for the constants and a fourth argument to the call: */
#include <linux/reboot.h> /* определения констант LINUX_REBOOT_* */
#include <sys/syscall.h> /* определения констант SYS_* */
#include <unistd.h>
int syscall(SYS_reboot, int magic, int magic2, int cmd, void *arg);
/* В glibc и в большинстве альтернативных libc (включая uclibc,
deitlibc, musl и других) некоторым константам присвоены
символьные имена RB_*, а библиотечная функция является
обёрткой с одним аргументом вокруг системного вызова: */
#include <sys/reboot.h> /* определения констант RB_* */
#include <unistd.h>
int reboot(int cmd);
ОПИСАНИЕ
Вызов reboot() перезагружает систему или разрешает/запрещает использование для перезагрузки специального
сочетания клавиш (сокращённо CAD, от комбинации по умолчанию — Ctrl-Alt-Delete; может быть изменена с
помощью 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.)
Аргумент cmd может принимать следующие значения:
LINUX_REBOOT_CMD_CAD_OFF
(RB_DISABLE_CAD, 0). Запретить использование сочетания клавиш для перезагрузки системы (CAD). Это
означает, что нажатие комбинации клавиш CAD приведёт к тому, что процессу init (с идентификатором
1) будет послан сигнал SIGINT, после чего этот процесс может сам решить какие действия выполнять
(возможно, послать сигналы процессам, выполнить команду sync, reboot).
LINUX_REBOOT_CMD_CAD_ON
(RB_ENABLE_CAD, 0x89abcdef). Разрешить использование сочетания клавиш для перезагрузки (CAD). Это
означает, что нажатие комбинации клавиш CAD приведёт к немедленному выполнению действия,
связанного с LINUX_REBOOT_CMD_RESTART.
LINUX_REBOOT_CMD_HALT
(RB_HALT_SYSTEM, 0xcdef0123; начиная с Linux 1.1.76) Выводится сообщение «System halted.» и
система останавливается. Управление передается монитору в ПЗУ, если таковой имеется. Если вызову
этой функции не предшествует sync(2), то данные будут потеряны.
LINUX_REBOOT_CMD_KEXEC
(RB_KEXEC, 0x45584543, начиная с Linux 2.6.13) Выполняет ядро, которое было загружено ранее с
помощью kexec_load(2). Этот параметр доступен только, если ядро собрано с параметром CONFIG_KEXEC.
LINUX_REBOOT_CMD_POWER_OFF
(RB_POWER_OFF, 0x4321fedc; начиная с Linux 2.1.30) Выводится сообщение «Power down.», система
останавливается, и у системы отключаются все источники питания, если это возможно. Если вызову
этой функции не предшествует sync(2), то данные будут потеряны.
LINUX_REBOOT_CMD_RESTART
(RB_AUTOBOOT, 0x1234567) Выводится сообщение «Restarting system.», и по умолчанию сразу
выполняется перезагрузка системы. Если вызову этой функции не предшествует команда sync(2), то
данные будут потеряны.
LINUX_REBOOT_CMD_RESTART2
(0xa1b2c3d4; since Linux 2.1.30). The message "Restarting system with command '%s'" is printed,
and a restart (using the command string given in arg) is performed immediately. If not preceded
by a sync(2), data will be lost.
LINUX_REBOOT_CMD_SW_SUSPEND
(RB_SW_SUSPEND, 0xd000fce1; начиная с Linux 2.5.18) Система переводится в режим ожидания
(suspended, hibernated) на диск. Этот параметр доступен только, если ядро собрано с параметром
CONFIG_HIBERNATION.
Только суперпользователь может вызывать reboot().
Конкретное действие описанных выше команд зависит от архитектуры системы. Что касается i386, то
дополнительный аргумент в данное время ничего не даёт (2.1.122), а тип перезагрузки можно задать в
командной строке ядра ("reboot=..."), определив, будет ли перезагрузка "тёплой" или "холодной", а также
аппаратной или посредством BIOS.
Поведение внутри пространств имён PID
Начиная с Linux 3.4, если reboot() вызывается из пространства имён PID, отличающегося от начального
пространства имён PID, и и значение cmd равно одному из перечисленных ниже, то выполняется «перезагрузка»
в этом пространстве имён: процесс «init» пространства имён PID завершается немедленно, что приводит к
результатам, описанным в pid_namespaces(7).
Возможные значения в этом случае, передаваемые в cmd при вызове reboot(), следующие:
LINUX_REBOOT_CMD_RESTART, LINUX_REBOOT_CMD_RESTART2
Процесс «init» завершается и wait(2) в родительском процессе возвращает, что поток завершился по
сигналу SIGHUP.
LINUX_REBOOT_CMD_POWER_OFF, LINUX_REBOOT_CMD_HALT
Процесс «init» завершается и wait(2) в родительском процессе возвращает, что поток завершился по
сигналу SIGINT.
При других значениях cmd вызов reboot() возвращает -1 и errno присваивается значение EINVAL.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
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.
ОШИБКИ
EFAULT Проблема получения данных пользовательского пространства при LINUX_REBOOT_CMD_RESTART2.
EINVAL Неправильные идентификационные числа или cmd.
EPERM Вызывающий процесс не имеет достаточно прав для вызова reboot(); вызывающий должен иметь мандат
CAP_SETGID в своём пользовательском пространстве имён.
СТАНДАРТЫ
Вызов reboot() есть только в Linux, и он не должен использоваться в переносимых программах.
СМ. ТАКЖЕ
systemctl(1), systemd(1), kexec_load(2), sync(2), bootparam(7), capabilities(7), ctrlaltdel(8), halt(8),
shutdown(8)
ПЕРЕВОД
Русский перевод этой страницы руководства был сделан aereiae <aereiae@gmail.com>, Azamat Hackimov
<azamat.hackimov@gmail.com>, Dmitriy S. Seregin <dseregin@59.ru>, Katrin Kutepova
<blackkatelv@gmail.com>, Lockal <lockalsash@gmail.com>, Yuri Kozlov <yuray@komyakino.ru>, Баринов
Владимир и Иван Павлов <pavia00@gmail.com>
Этот перевод является бесплатной документацией; прочитайте Стандартную общественную лицензию GNU версии 3
или более позднюю, чтобы узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.
Если вы обнаружите ошибки в переводе этой страницы руководства, пожалуйста, отправьте электронное письмо
на man-pages-ru-talks@lists.sourceforge.net.
Linux man-pages 6.03 8 февраля 2023 г. reboot(2)