如何将这个自定义 upstart 作业转换为 systemd?

如何将这个自定义 upstart 作业转换为 systemd?

我有一个自定义的 upstart 作业,可以触发一系列服务:

/etc/init/auto-gateway.conf

描述“自动门”
作者 ”[电子邮件保护]

发出 gw-is-up
发出 gw-is-down

启动于(网络设备启动或网络设备关闭)

任务

脚本
如果路线|grep -q“默认”;那么
    initctl 发出-n gw-is-up
别的
    initctl 发出-n gw-is-down

结束脚本

这种方法在经常断开和连接网络或睡眠和唤醒的笔记本电脑上效果非常好。当网络发生变化时,这种方法在我的服务器上也有效。

我正在尝试将这个简单的 upstart 作业转换为 systemd。我的第一次尝试是:

/etc/systemd/system/auto-gateway.service

[单元]
描述=自动网关服务
之后=网络在线.目标

[服务]
ExecStart=/usr/sbin/自动网关
KillMode=进程
重启=总是
类型=分叉
TimeoutStartSec=infinity

[安装]
WantedBy=多用户.目标

/usr/sbin/auto-gateway:

/bin/bash #!/bin/bash

while true; 执行

如果路线|grep“默认”;那么
    启动一些服务(如果没有运行)
别的
    停止一些服务(如果正在运行)

睡眠 30
完成> / dev / null

我发现这是 upstart 版本的一个糟糕替代品。我不喜欢固定计时器,也不喜欢将辅助服务硬编码到自动网关中。

systemd 有什么办法可以监视器而是 netdev?

谢谢

相关内容