Как преобразовать это пользовательское новомодное задание в systemd? [закрытый]

У меня есть пользовательское новомодное задание, которое инициировало ряд сервисов:

/etc/init/auto-gateway.conf:

description "Auto-GateWay"
author      "g4gvideo@gmail.com"

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

Это работает работы чрезвычайно хорошо над ноутбуками, которые часто разъединяются и соединяются из сетей, или когда они спят и пробуждение. Это также работает над моими серверами когда изменения сети.

Я пытаюсь преобразовать это простое новомодное задание в systemd. Моя первая попытка:

/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

Я нахожу, что это плохая замена к новомодной версии. Мне не нравятся фиксированный таймер и трудно кодирование вторичных сервисов в автошлюз.

Есть ли какой-либо путь systemd, может контролировать netdev вместо этого?

Спасибо

7
задан 2 August 2016 в 18:56

0 ответов

Другие вопросы по тегам:

Похожие вопросы: