systemd.path単位のDirectoryNotEmptyはどのくらいの頻度でサービスをトリガしますか?

systemd.path単位のDirectoryNotEmptyはどのくらいの頻度でサービスをトリガしますか?

持っていたら監視装置待ち行列ディレクティブを含むDirectoryNotEmptyフォルダサービスファイルの処理と削除待ち行列。パスユニットを次のように開始すると、待ち行列10個のファイルが含まれています。フォルダが空になるまでサービスを起動しますか?それでは、どのくらいの頻度でサービスをトリガーしようとしますか? (サービスが内容を変更しない場合はどうなりますか?待ち行列? )

ありがとう

ベストアンサー1

ディレクティブを含むシステムパス単位は、ディレクトリにDirectoryNotEmpty変更が発生した場合にのみそのサービスをトリガーします。 Systemdは内部的にAPIを使用してinotifyディレクトリの変更を監視します。実際にシステム化いいえディレクトリが空であるかどうかにかかわらず、タイマーを使用して定期的にサービスを開始します。これは、ディレクトリが空になるまでサービスが再起動されないことを意味します。代わりに、サービスは通常、ファイルを処理して削除するか、別のディレクトリに移動してディレクトリ内のすべてのファイルを処理する必要があります。たとえば、サービスが1つのファイルのみを処理し、その後ディレクトリで何も起こらない場合、サービスは再び呼び出されません。

このディレクティブには、「DirectoryWentFromEmptyToNonEmpty」がより適切な名前である可能性がありますDirectoryNotEmpty。ただし、テストの結果、ファイルがディレクトリに追加されるたびにサービスがトリガーされることがわかりました。 (ファイルを消費するプロセスに長い時間がかかると、調整が必要な複数のプロセスが並行して実行される可能性があるため、状況は少し複雑になります。)

おすすめ記事