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)
を参照)。