REBOOT
Section: Linux Programmer's Manual (2)
Updated: 2004-05-27
Index
JM Home Page
roff page
名前
reboot - 再起動する。または Ctrl-Alt-Delを有効・無効にする
書式
/* libc4 と libc5 でのライブラリコールとシステムコールは同じである。
またカーネル 2.1.30 以降では、定数としてシンボリックな名前
LINUX_REBOOT_* が定義されており、呼び出しの第 4 引数として
指定することができる。*/
#include <unistd.h>
#include <linux/reboot.h>
int reboot(int magic, int magic2, int flag, void *arg);
/* glibc では、関連する定数に RB_* というシンボリックな名前が付け
られている。ライブラリ関数の引数は 1 つで、3 引数のシステムコールの
ラッパ (wrapper) となっている。 */
#include <unistd.h>
#include <sys/reboot.h>
int reboot(int flag);
説明
reboot()
はシステムを再起動する。または再起動のキーストロークである
Ctrl-Alt-Delete (CAD) を有効/無効にする。
このキーストロークは
loadkeys(1)
によって変更できる。
magic
が
LINUX_REBOOT_MAGIC1
(値は 0xfee1dead) であり、かつ
magic2
が
LINUX_REBOOT_MAGIC2
(672274793) でなければこのシステムコールは失敗し、
EINVAL
が返される。
しかし 2.1.17 からは
LINUX_REBOOT_MAGIC2A
(85072278) が、
また 2.1.97 からは
LINUX_REBOOT_MAGIC2B
(369367448) が、
2.5.71 からは
LINUX_REBOOT_MAGIC2C
(537993216) が
magic2
の値として指定できるようになった (これらの定数の 16 進での
表記にはちょっとした意味がある)。
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.' というメッセージが表示され、システムは停止 (halt) する。
制御は ROM モニタに移る (ROM モニタがある場合)。
先に
sync(2)
を行なわないと、データが失われる。
- LINUX_REBOOT_CMD_POWER_OFF
-
(0x4321fedc; 2.1.30 以降)
`Power down' というメッセージが表示され、システムは停止 (stop) する。
可能な場合はシステムの電源が落とされる。
先に
sync(2)
を行なわないと、データが失われる。
- LINUX_REBOOT_CMD_RESTART2
-
(0xa1b2c3d4; 2.1.30 以降)
`Restarting system with command '%s'' というメッセージが表示され、
ただちに (
arg
に指定されたコマンドを用いて) 再起動 (restart) が行われる。
先に
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 を無効にする。
これ以降に CAD キーストロークが入力されると、
SIGINT
シグナルが init (プロセス 1) に送られる。
このシグナルを受けると、おそらく init プロセスは
前もって定められた動作を行うことになる (多分すべてのプロセスの kill,
sync, 再起動)。
この関数を使えるのはスーパーユーザーだけである。
上述のアクションの実際の効果はアーキテクチャに依存する。
i386 アーキテクチャでは、現在のところ (2.1.122) 付加引数は
何も行わないが、再起動のタイプをカーネルのコマンドライン引数
(`reboot=...') によって定めることができる。
これには warm または cold と、 hard または BIOS 経由の再起動を
設定できる。
返り値
成功すれば0が返る。エラーならば-1が返り、
errno
がエラーの内容にしたがってセットされる。
エラー
- EFAULT
-
LINUX_REBOOT_CMD_RESTART2
の時にユーザースペースのデータの取得に問題があった。
- EINVAL
-
magic の数字か flag が間違っている。
- EPERM
-
呼び出し元プロセスに
reboot()
を呼び出すのに十分な権限がなかった。
CAP_SYS_BOOT
ケーパビリティが必要である。
準拠
reboot()
は Linux に特有であり、移植を考慮したプログラムでは用いるべきではない。
関連項目
sync(2),
bootparam(7),
ctrlaltdel(8),
halt(8),
reboot(8),
capabilities(7)
Index
- 名前
-
- 書式
-
- 説明
-
- 返り値
-
- エラー
-
- 準拠
-
- 関連項目
-
This document was created by
man2html,
using the manual pages.
Time: 04:31:58 GMT, November 19, 2007