Minecraft サーバー用に C で inotify ウォッチャーを作成しています。基本的に、server.log を監視し、最新の行を取得して解析し、正規表現と一致する場合は; いくつかのアクションを実行します。
プログラムは、「正規表現に一致するエコー文字列 >> server.log」を介して正常に動作し、解析して必要な処理を実行します。ただし、文字列が Minecraft サーバー経由でファイルに自動的に書き込まれる場合、サーバーをシャットダウンするか (場合によっては) ログアウトするまで機能しません。
私はコードを投稿しますが、ext4がデータをディスクにフラッシュすることや、それらの行に沿った何かと関係がないかどうか疑問に思っています。ファイルシステムの問題。ただし、ファイルが更新されるたびに「tail -f server.log」が更新されるため、その場合は奇妙になります。