> Linux Reviews > man >

reboot

reboot


  1. reboot.2.man


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>

int reboot(int cmd);  

ОПИСАНИЕ

Вызов 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

SVENSKA - SVENSKA - SVENSKA - SVENSKA - ja - nl - pl