Como converter este trabalho de upstart personalizado em systemd? [fechadas]

7

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

    
por C4g Video 03.08.2016 / 01:00

0 respostas