「How Linux Works」という本には、一般的なシャットダウンプロセス(initシステムとは無関係)が次のように記載されています。
- initを実行するには、各プロセスを完全に終了する必要があります。
- 一定時間が経過してもプロセスが応答しない場合、initはプロセスを終了し、TERM信号を最初に試みます。
- TERM信号が無効の場合、initはすべての遅延に対してKILL信号を使用します。
- システムはシステムファイルを所定の位置にロックし、シャットダウンの準備をします。
- システムは、ルートを除くすべてのファイルシステムをアンマウントします。
- システムが再マウントされました。ルートファイルシステム読み取り専用。
- システムバッファリングされたすべてのデータをファイルシステムに書き込む同期手順を通じて
- 最後のステップは、boot(2)システムコールを介してカーネルに再起動または停止を指示することです。これは、初期化、再起動、一時停止、電源オフなどのヘルパープログラムを介して実行できます。
ファイルシステムが読み取り専用の場合、同期はどのようにそのバッファに書き込みを行いますか?
ベストアンサー1
あなたが驚いたことは正しいです。このコマンドは意味がありません。本にこのような内容が記載されている場合、それは急いで誤解を招くことです。
ファイルシステムをアンマウントまたは読み取り専用でマウントすると、すべてのデータがディスクに書き込まれます。umount
コマンドまたは戻りが実行されると、mount -o remount,ro
すべてのデータがディスクに書き込まれ、sync
これ以上何もしません。以前に呼び出すことは意味がなくsync
(どうせマウント解除操作によってデータが書き込まれて)、その後に呼び出すことは意味がありません(何もしません)。
私はこれがいくつかの古代のUnixシステムでは本当ではないと思います。sync
今後削除。後で電話することはまだ理にかなっていません。
ファイルシステム以上の機能を使用すると、特定の状況でsync
特定のタスクを実行できます。たとえば、Linuxでは、sync
RAIDアレイのメタデータをディスクに書き込むことができると思います。これはファイルシステムを読み書きしなくても便利です。