Linux
是否可以擴展 WantedBy systemd 單元屬性?
我有一個單元文件,我想修改一些屬性。我已經能夠使用該
/etc/systemd/system/unitname.service.d/
目錄擴展所有屬性,但無法WantedBy
擴展該屬性。原始單元文件 (delugged.service)
[Unit] Description=Deluge Bittorrent Client Daemon Wants=network-online.target After=network-online.target [Service] Type=simple User=media Group=media ExecStart=/usr/local/bin/deluged -d -u 0.0.0.0 [Install] WantedBy=multi-user.target
/etc/systemd/system/deluged.service.d/override.conf
[Unit] BindTo=sys-subsystem-net-devices-tun0.device After=sys-subsystem-net-devices-tun0.device [Service] ExecStart= ExecStart=/usr/local/bin/deluged -d -i 10.10.10.1 -u 0.0.0.0 [Install] WantedBy= WantedBy=sys-subsystem-net-devices-tun0.device
一切似乎都正常工作,除了
WantedBy
當我執行systemctl enable deluged
它時仍然創建符號連結multi-user
並且在新位置沒有創建連結。我已經搜尋了有關擴展/覆蓋的文件,但我沒有看到任何談論,
WantedBy
所以我不知道是否可以擴展它。我做錯了什麼還是不可能?
較舊的 systemd 版本不支持使用插入文件覆蓋該
[Install]
部分。相反,您需要為此服務創建替換文件。同樣,該部分中的
Conflicts=
鍵也不能在插入文件中被覆蓋。[Unit]
Systemd 在2017 年底取消了該限制,因此之後發布的版本不受影響。
我目前正在使用 Systemd 237,它似乎考慮到了
$$ install $$部分覆蓋。 至少連結是根據我的插入文件創建的。
/usr/lib/systemd/user/syncthing.service
[Unit] Description=Syncthing - Open Source Continuous File Synchronization Documentation=man:syncthing(1) [Service] ExecStart=/usr/bin/syncthing -no-browser -no-restart -logflags=0 Restart=on-failure SuccessExitStatus=3 4 RestartForceExitStatus=3 4 # Hardening SystemCallArchitectures=native MemoryDenyWriteExecute=true NoNewPrivileges=true [Install] WantedBy=default.target
/home/abe/.config/systemd/user/syncthing.service.d/override.conf
[Install] WantedBy= WantedBy=multi-user.target
systemctl –user 啟用 syncthing.service
Created symlink /home/abe/.config/systemd/user/multi-user.target.wants/syncthing.service → /usr/lib/systemd/user/syncthing.service.