Eu tenho um serviço systemd que preciso executar antes de iniciar a rede e estou lutando um pouco com isso. De acordo com isso: Executando serviços após a rede estar ativaeu preciso usarAntes = rede-pre.target, no entanto, meu serviço não está iniciando.
Dependências:
root@server:~# systemctl list-dependencies my-script --reverse
my-script.service
● └─network-pre.target (has a red dot next to it)
A unidade real em si:
[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
Alguma sugestão?
Responder1
Remova a linha Wants=, pois você está listando algo impossível de satisfazer: inicie o serviço antes de network-pre.target, mas também depois de (Wants). Portanto, a unidade deve ser lida como:
[Unit]
Description=My script
Before=network-pre.target
[Service]
ExecStart=/etc/my-script
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Responder2
Isto é o que funcionou para mim:
[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