Systemd

systemd 啟動我的模板的另一個“不需要的”實例

  • November 4, 2020

我嘗試將一整套服務移植到 centos8 並移植到 systemd 啟動系統。

我寫了一個“truc.service”,比如:

[Unit]
After=network.target network-online.target syslog.target
PartOf=machin.target
[Service]
Type=forking
ExecStart=/my/binary/stuff.bin run %i
[Install]
WantedBy=machin.target

所以我描述了一個“machin.target”,如:

[Unit]
Wants=bidule.service
Wants=truc@001.service truc@002.service
[Install]
WantedBy=chose.service

一旦啟用,並且由 systemctl 重新載入守護程序,如果我這樣做了

systemctl list-dependencies machin.target

我明白了

machin.target
--bidule.service
--truc@001.service
--truc@002.service
--truc@machin.service

看起來它試圖用自己的名字再啟動一個“truc”實例,我不想要它!我哪裡錯了?

$$ my english skill might not be good enough and since this is a compagny work, I need to anonymize things. Hope you will understand my problem $$

我發現 !

安裝服務時,我做了:

systemctl enable /my/path/truc@.service

這導致一個符號連結到:

/etc/systemd/system/machin.target.wants/truc@.service

這似乎是一個錯誤。如果我刪除該符號連結,在執行“daemon-reload”之後,列表依賴項會告訴:

machin.target
--bidule.service
--truc@001.service
--truc@002.service

引用自:https://serverfault.com/questions/1041125