Документация по LinuxLinuxDoc.Ru 🔍

reboot - перезагружает систему и разрешает/запрещает использование клавиш Ctrl-Alt-Del для перезагрузки

НАЗВАНИЕ
reboot - перезагружает систему и разрешает/запрещает
использование клавиш Ctrl-Alt-Del для перезагрузки

СИНТАКСИС
В libc4 и libc5 библиотечный и системный вызовы идентичны;
в ядрах версии 2.1.30 и последующих есть символьные имена
LINUX_REBOOT_*, относящиеся к константам, а также появился
четвертый параметр

#include
#include

int reboot(int magic, int magic2, int flag, void *arg);

В glibc некоторым константам присвоены символьные имена
RB_*, а библиотечный вызов является 1-аргументной
оболочкой трехаргументного системного вызова:

#include
#include

int reboot(int flag);

ОПИСАНИЕ
Функция reboot перезагружает систему или
разрешает/запрещает использование для перезагрузки
специального сочетания клавиш (по умолчанию это Ctrl-Alt-
Delete; это сочетание можно изменить при помощи load-
keys(1)).

Системный вызов вернет ошибку (EINVAL), если magic не
равен LINUX_REBOOT_MAGIC1 (т.е., 0xfee1dead) и magic2 не
равен LINUX_REBOOT_MAGIC2 (т.е., 672274793). Однако, в
версии 2.1.17 ядра и более поздних в качестве значения
magic2 можно использовать LINUX_REBOOT_MAGIC2A (т.е.,
85072278), а в версии 2.1.97 и более поздних -
LINUX_REBOOT_MAGIC2B (369367448); шестнадцатеричные
значения этих констант говорят сами за себя. Параметр
flag может принимать следующие значения:

LINUX_REBOOT_CMD_RESTART
(RB_AUTOBOOT, 0x1234567). На консоль выводится
сообщение `Restarting system.', и сразу выполняется
перезагрузка системы. Если вызову этой функции не
предшествует команда sync(2), то данные будут
потеряны.

LINUX_REBOOT_CMD_HALT
(RB_HALT_SYSTEM, 0xcdef0123 версии 1.1.76 ядра и
более поздних). На консоль выводится сообщение
`System halted.', и система останавливается.
Управление передается монитору в ПЗУ, если таковой
имеется. Если вызову этой функции не предшествует
sync(2), то данные будут потеряны.

LINUX_REBOOT_CMD_POWER_OFF
(0x4321fedc в ядре версии 2.1.30 и более поздних).
На консоль выводится сообщение 'Power down.',
система останавливается, и у системы отключаются
все источники питания, если это возможно. Если
вызову этой функции не предшествует sync(2), то
данные будут потеряны.

LINUX_REBOOT_CMD_RESTART2
(0xa1b2c3d4; версия ядра 2.1.30 и более поздние).
На консоль выводится сообщение `Restarting system
with command '%s'', и немедленно выполняется
перезагрузка системы (с использованием командной
строки, заданной в arg). Если вызову этой функции
не предшествует sync(2), то данные будут потеряны.

LINUX_REBOOT_CMD_CAD_ON
(RB_ENABLE_CAD, 0x89abcdef). Разрешить
использование сочетания клавиш для перезагрузки.
Это означает, что сочетание клавиш CAD приведет к
немедленному выполнению LINUX_REBOOT_CMD_RESTART.

LINUX_REBOOT_CMD_CAD_OFF
(RB_DISABLE_CAD, 0). Запретить использование
сочетания клавиш для перезагрузки системы.
Сочетание клавиш CAD приведет к тому, что init
(процесс 1) получит сигнал SIGINT, после чего этот
процесс может произвести все необходимые действия
(послать сигналы процессам, выполнить команду sync,
перезагрузиться).

Эту функцию может вызывать только суперпользователь.

Конкретное действие описанных выше команд зависит от
архитектуры системы. Что касается i386, то дополнительный
аргумент в данное время не работает (2.1.122), а тип
перезагрузки можно задать с помощью командной строки ядра
`reboot=...', определив, будет ли перезагрузка "горячей"
или "холодной", а также выполнить ее при помощи процессора
или BIOS.

ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При удачном завершении вызова возвращаемое значение равно
нулю. При ошибке возвращается -1, а переменной errno
присваивается номер ошибки.

КОДЫ ОШИБОК
EINVAL Неправильны "волшебные" числа или параметр flag.

EPERM Несуперпользователь пытается выполнить функцию
reboot.

СООТВЕТСТВИЕ СТАНДАРТАМ

reboot - это функция, специфичная для Linux. Не
рекомендуется использовать ее в программах, которые должны
быть переносимыми в другие системы.
Читать новости Linux в Telegram
Linux - reboot - перезагружает систему и разрешает/запрещает использование клавиш Ctrl-Alt-Del для перезагрузки
Мы в соцсетях ✉