Tengo un servicio systemd que necesito ejecutar antes de que se inicie la conexión en red y estoy teniendo algunos problemas con él. De acuerdo a esto: Ejecución de servicios después de que la red esté activanecesito usarAntes = red-pre.objetivo, sin embargo, mi servicio no se inicia.
Dependencias:
root@server:~# systemctl list-dependencies my-script --reverse
my-script.service
● └─network-pre.target (has a red dot next to it)
La unidad real en sí:
[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
¿Alguna sugerencia?
Respuesta1
Elimine la línea Wants= ya que está enumerando algo imposible de satisfacer: inicie el servicio antes de network-pre.target pero también después de (Wants). Entonces la unidad debería leerse como:
[Unit]
Description=My script
Before=network-pre.target
[Service]
ExecStart=/etc/my-script
Type=oneshot
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Respuesta2
Esto fue lo que funcionó para mí:
[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