У меня есть служба systemd, которую мне нужно запустить до начала работы в сети, и я немного борюсь с ней. Согласно этому: Запуск служб после включения сети Мне нужно использовать До = network-pre.target, однако моя служба не запускается.
Зависимости:
root@server:~# systemctl list-dependencies my-script --reverse
my-script.service
● └─network-pre.target (has a red dot next to it)
Собственно сам агрегат:
[Unit]
Description=My script
Before=network-pre.target
Wants=network-pre.target
[Service]
ExecStart=/etc/my-script
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Какие-либо предложения?
Это то, что сработало для меня:
[Unit]
Description=@CPACK_PACKAGE_DESCRIPTION_SUMMARY@
Before=network-pre.target
Wants=network-pre.target
DefaultDependencies=no
Requires=local-fs.target
After=local-fs.target
[Service]
Type=oneshot
ExecStart=/sbin/my-script.sh
RemainAfterExit=yes
[Install]
WantedBy=network.target
Удалите строку Wants =, поскольку вы перечисляете то, что невозможно удовлетворить: запускайте службу до network-pre.target, но также и после (Wants) ее. Таким образом, единица должна читаться как:
[Unit]
Description=My script
Before=network-pre.target
[Service]
ExecStart=/etc/my-script
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target