reboot
1. reboot.2.man
Manpage of REBOOT
REBOOT
Section: Руководство программиста Linux (2)Updated: 2008-02-11
Index Return to Main Contents
ИМЯ
reboot - перезагружает систему и разрешает/запрещает использование комбинации Ctrl-Alt-DelОБЗОР
/* Библиотечная функция в libc4, libc5 и системный вызоводинаковы, и начиная с версии ядра 2.1.30 появились
символьные имена LINUX_REBOOT_* для констант и четвёртый
аргумент вызова */
#include <unistd.h>
#include <linux/reboot.h>
int reboot(int magic, int magic2, int cmd, void *arg);
/* В glibc некоторым константам присвоены символьные имена
RB_*, а библиотечная функция является обёрткой с одним
аргументом вокруг системного вызова с тремя аргументами */
#include <unistd.h>
#include <sys/reboot.h>
ОПИСАНИЕ
Вызов reboot() перезагружает систему или разрешает/запрещает использование для перезагрузки специального сочетания клавиш (сокращённо CAD, от комбинации по умолчанию --- Ctrl-Alt-Delete; может быть изменена с помощью loadkeys(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) и начиная с 2.5.71 --- LINUX_REBOOT_MAGIC2C (537993216) (шестнадцатеричные значения этих констант говорят сами за себя). Аргумент cmd может принимать следующие значения:
- 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 aq%saq" и немедленно выполняется перезагрузка системы (с использованием командной строки, заданной в arg). Если вызову этой функции не предшествует sync(2), то данные будут потеряны.
- LINUX_REBOOT_CMD_CAD_ON
- (RB_ENABLE_CAD, 0x89abcdef). Разрешить использование сочетания клавиш для перезагрузки (CAD). Это означает, что нажатие комбинации клавиш CAD приведёт к немедленному выполнению действия, связанного с LINUX_REBOOT_CMD_RESTART.
- LINUX_REBOOT_CMD_CAD_OFF
- (RB_DISABLE_CAD, 0). Запретить использование сочетания клавиш для перезагрузки системы. Это означает, что нажатие комбинации клавиш CAD приведёт к тому, что процессу init (с идентификатором 1) будет послан сигнал SIGINT, после чего этот процесс может сам решить какие действия выполнять (возможно, послать сигналы процессам, выполнить команду sync, reboot).
Только суперпользователь может вызывать reboot().
Конкретное действие описанных выше команд зависит от архитектуры системы. Что касается i386, то дополнительный аргумент в данное время ничего не даёт (2.1.122), а тип перезагрузки можно задать в командной строке ядра ("reboot=..."), определив, будет ли перезагрузка "тёплой" или "холодной", а также аппаратной или посредством BIOS.
ВОЗВРАЩАЕМОЕ ЗНАЧЕНИЕ
При значениях cmd, по которым система останавливается или перезагружается, в случае успешной работы reboot() ничего не возвращается. При других значений cmd в случае успешной работы возвращается ноль. При ошибке всегда возвращается -1, а errno устанавливается в соответствующее значение.ОШИБКИ
- EFAULT
- Проблема получения данных пользовательского пространства при LINUX_REBOOT_CMD_RESTART2.
- EINVAL
- Неправильные идентификационные числа или cmd.
- EPERM
- У вызывающего процесса недостаточно прав для вызова reboot(); требуется мандат CAP_SYS_BOOT.
СООТВЕТСТВИЕ СТАНДАРТАМ
Вызов reboot() есть только в Linux, и он не должен использоваться в переносимых программах.СМОТРИТЕ ТАКЖЕ
sync(2), bootparam(7), capabilities(7), ctrlaltdel(8), halt(8), reboot(8)
Index
This document was created by man2html using the manual pages.
Time: 17:41:56 GMT, May 11, 2012



