よく、非常に重要なディスク変更を伴う作業などで $ sync $ sync $ sync ってやれみたいな話を聞きますが、これって $ sync # 一息入れる っていうのと何か違ったりするのかなみたいな疑問を未だに持っています。 sync の意味 そもそも sync(8) は、ディスクへの確実な書き込みを実行するためのコマンドです。 例えば write(2) は、一般にディスク書き込みは伴わず、あくまでカーネル内のバッファ変更のみが実施された状態で制御を戻します。従って、ここでシステムが異常終了した場合、あるいはディスク故障が発生した場合は、ユーザアプリとして書き込んだはずのデータが失われることになります。 sync(8)は、このカーネルのバッファ変更(dirty buffer)のみがなされた状態から、強制的にディスクに書き出すように促すためのコマンドです*1 *2。別に 3 回 syn