Linux
如果文件更改,如何自動重啟 systemd 服務?
我有一項
systemd
服務,它使用自定義文件在嵌入式 Linux 設備上啟動程序。我想在文件被修改/更改時自動啟動此服務。在閱讀systemd
手冊時,我遇到了一個使用.path
單元文件執行此操作的解決方案。我的設置如下所示:
test.service
[Unit] Description=MyApp After=network-online.target [Service] WorkingDirectory=/data/test ExecStart=/usr/bin/myapp -c /data/test/myconfig.cfg [Install] WantedBy=multi-user.target
我創建了一個
test-restart.service
包含內容的文件:[Service] Type=OneShot ExecStart=/usr/bin/systemctl restart test.service
另外,一個
test-restart.path
單元文件:[Path] Unit=test-restart.service PathChanged=/data/test/myconfig.cfg [Install] WantedBy=multi-user.target
但是,據我了解,我需要執行
systemctl enable --now test-restart.path
,如果文件被修改然後test-restart.service
被啟動,這將觸發,這將重新啟動test.service
。但是,我不確定如何systemctl enable --now test-restart.path
自動呼叫它?我的意思是,我應該每次都手動執行(或者可能只是第一次?)還是由 處理systemctl
?如果設備重新啟動會發生什麼?systemctl enable --now test-restart.path
我們應該手動再次呼叫嗎?提前致謝。
PS:如果這裡缺少任何資訊,請告訴我
出色地
systemctl enable --now test-restart.path
自動設置啟動。- 它將軟連結添加到指定的引導級別。
- 這是一種持久的行為
- 啟動時會
systemd
啟動- 你可以看看它的反向依賴
systemctl list-dependencies test-restart.path --reverse
- 無需
systemctl enable --now test-restart.path
再次手動執行- 設備重啟只需要一次
test-restart.path
系統啟動時會自行啟動