restart(2) を使用する場合と restart(8) を使用する場合

restart(2) を使用する場合と restart(8) を使用する場合

私はCでカスタムrebootプログラムを書いています。reboot(2)system("/sbin/reboot")

どちらもランレベルをreboot(8)変更しinit 6てサービスを正常に終了し、すべてのファイルシステムをマウント解除します。しかし、reboot(2)それは何もしません。

いつreboot(2)最初に使うべきですかreboot(8)

(私はマニュアルページでsync(2)以前に何を呼び出すべきかを知っていますreboot(2)。)

ベストアンサー1

今すぐシステムを再起動するには、他の操作を実行するのではなく、実行中の他のプロセスや開いているファイルに関係なく、システムコールreboot(たとえば、reboot(2)事前に電話をかけないこともほとんどありません)sync

システムを正常に再起動するには、プロセスが完全に終了するまで時間をかけてファイルシステムをアンマウントし、ユーティリティreboot(たとえばreboot(8))を呼び出します。

ぜひ尋ねなければならないなら、reboot(8)そうです。システムコールは、ユーティリティが「はい、終了しました。システムがほぼ停止しました。プロセッサをリセットします」と言う方法が必要なために作成rebootされます。reboot

おすすめ記事