私たちはカーネル3.12を実行しているBBBベースのカスタムボードを持っています。
削除と同期について質問があります。
スクリプトがパーティションをアンマウントすると仮定すると、保留中の書き込みを完了する前にコマンドを実行する必要がありますかsync
?umount
?
答え1
sync
いいえ、以前は走る必要はありませんでしたumount
。umount
保留中のすべての書き込みは、ファイルシステムが実際にアンマウントされる前に完了します。また、一部のプロセスがまだファイルシステム(現在の作業ディレクトリなど)を使用している場合は、マウント解除を拒否します。
編集する:削除は主に処理されますfs/namespace.c
。そこで明示的な呼び出しを見つけることはできませんが、sync
「このマウントポイントをマウント解除としてマークし、追加操作を拒否するか、すべての操作が完了したらマウント解除します」などの説明が表示されます。明示的な使用中の検査も見ることができます。
保留中のすべてのタスクを実際に完了したかどうかを簡単にテストできますumount
。遅いUSBスティックをマウントし、大容量ファイルをここにコピーしてからumount
直接呼び出しますcp
。新しいプロンプトを表示するには数秒かかります。dstat
別のウィンドウで背中を実行すると、書き込みがまだ進行中であることがわかります。これは入力したとおりに正しく機能しますsync
。