EN JA
REBOOT(2)
REBOOT(2) FreeBSD System Calls Manual REBOOT(2)

名称

rebootシステムをリブートするかまたはプロセッサを停止する

ライブラリ

Standard C Library (libc, -lc)

書式

#include < unistd.h>
#include < sys/reboot.h>

int
reboot( int howto);

解説

reboot() システムコールはシステムをリブートします。スーパユーザだけが必要に応じてマシンをリブートできます。しかし、回復不可能なシステム障害の場合は、リブートは自動的に起動されます。

howto 引数はオプションのマスクです。システムコールインタフェースはインクルードファイル < sys/reboot.h> 内に定義された次のオプションを受付け、新しいカーネルまたは新しいブートストラップと init プログラムに渡されるようにします。

RB_AUTOBOOT
デフォルト。システムが通常の方法でリブートするようにします。
RB_ASKNAME
ブートストラッププログラム自体によって解釈され、どのファイルをブートすべきかについて、コンソールにプロンプトを表示するようにします。通常、システムはファイル“ xx(0,0)kernel”からブートされます。ここで、 xx はファイル名を入力するようにプロンプトを出さない場合の、デフォルトのディスク名です。
RB_DFLTROOT
コンパイル時に指定されたルートデバイスを使用します。通常、システムは、可能であればブートされたデバイスをルートデバイスとして使用します (デフォルトの動作は、システムがどのドライブからロードされたかを判別するブートストラッププログラムの能力に依存します。これはすべてのシステムで可能なわけではありません)。
RB_DUMP
リブートの前にカーネルメモリをダンプします。詳細については、 savecore(8) を参照してください。
RB_HALT
プロセッサは単に停止されます。リブートは起きません。このオプションは注意して使用する必要があります。
RB_POWEROFF
システム停止の後、シャットダウンコードは、可能であれば電源を切ります。これにはハードウェアのサポートが必要です。
RB_INITNAME
システムがリブートした際に、 /sbin/init 以外の init プログラム ( init(8) を参照) が実行されるよう指定するオプションです。このスイッチは現時点では無効です。
RB_KDB
シンボルテーブルをロードし、システム内の組み込みデバッガを有効にします。カーネルがデバッグ用に構成されていない場合、このオプションは意味を持ちません。これ以外のいくつかのオプションは、このオプションと組み合わせると通常と異なる意味を持つようになりますが、それらの機能を使用することは reboot() システムコールでは不可能な場合があります。詳細については、 ddb(4) を参照してください。
RB_NOSYNC
通常、プロセッサが停止されるかまたはリブートされる前に、ディスクへまだ書き込まれていないデータがあればそれを書き込みます ( sync(8) を参照)。このオプションは、ファイルシステムへの変更が手作業で行われた場合や、プロセッサが暴走している場合、有用なことがあります。
RB_RDONLY
初期段階で、ルートファイルシステムを読み込み専用でマウントします。現在はこれがデフォルトであり、このオプションは無意味なものになっています。
RB_SINGLE
通常のリブート処理ではまず自動的にディスクの一貫性チェックが行われ、次いでマルチユーザ環境へ移行するようになっています。 RB_SINGLE は、これを行わず、システムをコンソール上のシングルユーザシェルでブートします。 RB_SINGLE は、実際にはブートし直されたシステムで init(8) プログラムによって解釈されます。

オプションを指定しない場合 (すなわち、 RB_AUTOBOOT が使用される場合)、システムは、プロセッサが所定の方法で選択したユニット 0 のディスクのルートファイルシステムにある“kernel”というファイルからリブートされます。この際、通常はディスクの一貫性チェックが自動的に実行されます ( fsck(8) を参照)。

戻り値

正常に処理が終了した場合、この呼び出しは戻ることはありません。そうでない場合は -1 が返され、エラーがグローバル変数 errno 内に返されます。

エラー

[ EPERM]
呼び出し側がスーパユーザではありません。

歴史

reboot() システムコールは、 4.0BSD で登場しました。

バグ

HP300 システムは、 RB_DFLTROOTRB_KDB のどちらもサポートしていません。
June 4, 1993 FreeBSD