Files

即使目標文件未更改,系統路徑單元也會在啟動時觸發

  • September 8, 2021

我正在嘗試使用 systemd 路徑 + 服務在文件更改時觸發 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 單元在啟動時觸發,無論如何。這裡發生了什麼?

該路徑不應monitor.service在啟動時觸發,但在啟動時monitor.service啟用自身是一個常見錯誤。

如果monitor.service包含通常:

[Install]
WantedBy=multi-user.target

然後monitor.service將在啟動時啟動,或者只要它被您的*.path.

解決方案1:

如果這是第 3 方服務,則禁用該服務。這將阻止它在啟動時啟動,但不會阻止它被您觸發*.path

sudo systemctl disable monitor.service

解決方案2:

如果您monitor.service自己編寫,則只需[Install]monitor.service.

引用自:https://unix.stackexchange.com/questions/667528