Tengo un archivo de servicio que ejecuta un script de shell y el script debe ejecutarse después de iniciar la ventana acoplable. Esto es lo que probé, pero el script se inicia sin esperar el docker.service:
[Unit]
Description=network configuration service
Requires=docker.service
After=docker.service
[Service]
WorkingDirectory=/etc/systemd/system/
Type=oneshot
ExecStart=/bin/bash netset.sh
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Respuesta1
Este es el archivo de configuración de la unidad de servicio que tengo y que se ejecuta después de que docker.service esté activo, y también se vuelve a ejecutar cada vez que se reinicia docker.service:
[Unit]
Description=Floating IP
After=docker.service
BindsTo=docker.service
ReloadPropagatedFrom=docker.service
[Service]
Type=oneshot
ExecStart=/usr/local/bin/floating-ip.sh
ExecReload=/usr/local/bin/floating-ip.sh
RemainAfterExit=yes
[Install]
WantedBy=multi-user.target
Documentación de las opciones utilizadas:
- manual de configuración de la unidad de servicio systemd
- manual de configuración de la unidad systemd
El script ejecutado por este servicio agrega una regla SNAT de iptables para hacer que los contenedores Docker usen la dirección IP en eth0:1 en lugar de la predeterminada en eth0, es decir, persistir el enfoque enhttps://serverfault.com/a/686107.