最新のLinuxでは、/bin/syncはいつ役に立ちますか?

最新のLinuxでは、/bin/syncはいつ役に立ちますか?

/bin/sync が存在する理由が気になります。私はこれが何をしているのか、なぜページングが起こるのか、そしてなぜオペレーティングシステムの同期が重要なのかを理解しています。しかし、/bin/syncを呼び出すのがいつ役に立つのかはまだわかりません。

私の考えでは、Linuxは重要なことが起こるたびに同期する必要があります(例えば、シャットダウン前、元のLinuxの同期が不足しているため、同期、同期、神話が発生します)。 Linuxが信頼でき、私たち全員がそのように信じている場合は、同期せずにOSに害を及ぼすコマンドを実行する前に、LinuxがFSにブロックが書き込まれることを保証する必要があります。

sync(8) のマニュアルページでは、プログラムが誤って終了した場合に sync を実行することをお勧めします。私はこれをある程度見ていて、同期を使用する理由があるプログラムはほとんどないと思いますが(そしてアドバイスが機能するかどうかを確認するのを待ちます)、OSをよりきれいにする方法で同期をオフにする方法はありません。 。

とにかく、sync(8)は/ bin / syncバイナリと同じではありません。バイナリが役に立つ状況を見逃しているようですが?私が見た唯一のユースケースは、より多くのメモリを解放し、「利用可能な」メモリのより良いアイデアを得るために呼び出す前にmemを実行することです。これはコンピュータが爆発するという事実に気づき、それが起こる前にsyncに入るのに十分な時間がありましたが、sync(8)Watchdogプログラムを呼び出そうとする人以外は誰もが手動でこれを実行しない場合に便利です。

私が見逃したバイナリに他の利点がありますか?

答え1

これsync便利シンプルなパッケージですsyncシステムコール

コンピュータをシャットダウンする前に明示的に呼び出す必要はありません。終了スクリプトがこれを行うからです!実際にファイルシステムをアンマウントまたは読み取り専用に切り替えると、ファイルシステムのデータがディスクにフラッシュされ、シャットダウンスクリプトがこれを実行するため、ほとんどの場合これは不要です。呼び出しは、sync問題が発生してプロセスがシャットダウン順序で生き残って削除を防ぐために実行する必要がある重要なタスクです。

sync一時停止または休止状態シーケンスの2番目のステップ(つまり、ハードウェアをシャットダウンする前)でも呼び出されます。ここでは、「今、すべてのデータをディスクに書き込む」と言う以外に、他のオプションはありません。

もう1つの有用な時間syncは、実験的なドライバを試してみるなど、衝突を引き起こす危険性のある作業を実行する前です。

sync次の時間前に呼び出されましたプログラム衝突は役に立たない。syncプログラムと記憶媒体の間のバッファー内のデータを処理します。プログラムによってファイルに保存されていないデータに対しては何も行いません。

この呼び出しは使用可能なメモリに影響を与えないため、使用可能なメモリを確認するのに役に立ちsyncません。リサイクルのために書き込みバッファを解放しますが、実際にはこれらのバッファを解放しません。キャッシュに残っている間、カーネルが他のものにメモリを割り当てる必要があるときに解放されます。

答え2

「同期の歴史」は、Googleにとって難しいことです。 ;-) 完全に未知の推測は、カーネル開発者がテスト目的で sync(2) システムコールを変更することが少なくとも 1 つの正当な使用であることです。ファイルシステムを停止またはアンマウントするよりも、システムコールを呼び出すより便利な方法が必要ですか?

答え3

syncおそらく、大量のデータを遅いドライブにコピーするのに役立つかもしれません。外付けドライブを取り出す前に、外付けドライブにすべての内容が記録されていることを確認してください。

関連情報