ファイルが変更されたときにPythonスクリプトをトリガーするためにシステムパス+サービスを使用しようとしています。
ファイルが変更された時期に関係なく、起動時にスクリプトが実行されることがわかりました。
これは私の.pathファイルの一部です。
PathChanged=/home/pi/network/trigger.txt
Unit=monitor.service
現在テストすると、monitor.serviceはタイムスタンプ付きのログファイルを作成するスクリプトを起動します。以下はログファイルの一部です。
14:26:40 Friday September 3, 2021 file modified
stat /home/pi/network/trigger.txt を実行すると、
Access: 2021-07-14 17:07:42.871258883 -0400
Modify: 2021-08-24 16:53:00.879999930 -0400
Change: 2021-08-24 16:53:00.879999930 -0400
明らかに、ファイルはまだ変更されていませんが、とにかく起動時に.path単位が実行されます。ここで何が起こっているのでしょうか?
答え1
このパスはmonitor.service
起動時にトリガーしてはいけませんが、起動時にこのパスを有効にするのは一般的な間違いですmonitor.service
。
monitor.service
一般的な内容が含まれている場合:
[Install]
WantedBy=multi-user.target
これによりmonitor.service
起動時に有効になります。またはそれがあなたによって引き起こされるたびに*.path
。
解決策1:
サードパーティのサービスの場合は、サービスを無効にしてください。これは起動時にアクティブになるのを防ぎますが、ユーザーがトリガーするのを防ぎません*.path
。
sudo systemctl disable monitor.service
解決策2:
monitor.service
自分で作成する場合[Install]
は、その部分を削除してくださいmonitor.service
。