Назад | Перейти на главную страницу

Можно ли расширить свойство WantedBy systemd unit?

У меня есть файл модуля, и я хочу изменить некоторые свойства. Мне удалось расширить все свойства, используя /etc/systemd/system/unitname.service.d/ каталог, но не могу получить WantedBy недвижимость будет расширена.

Исходный файл объекта (deluged.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] раздел не может быть отменено в файле drop-in.

В настоящее время я использую Systemd 237 и, похоже, принял во внимание переопределения раздела [install].

По крайней мере, ссылки создаются в соответствии с моим файлом drop-in.

/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.