lsofが開かれたファイルをリストできないのはなぜですか?たとえば、テキストエディタを使用してホームディレクトリにあるファイルを開きます。
$ gedit ~/.python_history
lsof
ルートとしても機能しません
$ sudo lsof | grep python_history
何もリストされていません。なぜ?
ファイルの編集と保存に違いはありません。 Pythonインタプリタを実行しても違いはありません。
$ lsof | grep gedit
複数のファイルが一覧表示されますが、編集中のファイルは一覧表示されません。
答え1
Geditはファイルをメモリに読み込み、ファイルハンドルを閉じます。通常:
open("/path/to/your/file", O_RDONLY|O_LARGEFILE|O_NOATIME) = 18
read(18, "blah blah blah"..., 4096) = 305
close(18) = 0
それともmmapや他の方法です。 (正確にファイルを読み取る方法はわかりませんが、ポイントはファイルを開いたままにしないことです。)
その後、変更されたことを確認するためにポーリングを続けます。書き込み中にもう一度開いてみてください。