Eu tenho um trabalho inicial personalizado que aciona uma série de serviços:
/etc/init/auto-gateway.conf
:
description "Auto-GateWay" author "[email protected]" emits gw-is-up emits gw-is-down start on (net-device-up or net-device-down) task script if route | grep -q "default"; then initctl emit -n gw-is-up else initctl emit -n gw-is-down fi end script
Isso funciona muito bem em laptops que freqüentemente se desconectam e se conectam a partir de redes, ou quando eles dormem & amp; acorde. Também funciona nos meus servidores quando a rede muda.
Eu estou tentando converter este simples trabalho inicial para o systemd. Minha primeira tentativa é:
/etc/systemd/system/auto-gateway.service
:
[Unit] Description=Auto-Gateway service After=network-online.target [Service] ExecStart=/usr/sbin/auto-gateway KillMode=process Restart=always Type=forking TimeoutStartSec=infinity [Install] WantedBy=multi-user.target
/usr/sbin/auto-gateway:
#!/bin/bash while true; do if route | grep "default"; then start some services (if not running) else stop some services (if running) fi sleep 30 done >/dev/null
Acho isso um substituto ruim para a versão inicial. Eu não gosto do timer fixo e codifico os serviços secundários em auto-gateway.
Existe alguma maneira de o systemd poder monitorar o netdev?
Obrigado