在 upstart conf 中执行条件可以吗?

condition execution in upstart conf ok to do?

我有一个应用程序更新服务,它使用它的 conf 同步到服务器:

start on started engine
stop on stopped engine or firmware_update_mode

现在,我在 /var/run/engine/wifi 的设备上获得了状态 up/down 的 wifi 状态。我现在正试图了解什么是让此应用程序更新服务 运行 仅在 wifi 上运行并在 wifi 下停止的正确方法。当然,它只会在引擎 运行ning 时 运行。因此,它应该 运行 作为条件执行,即

启动引擎 wifi 开启,wifi 关闭停止。

应用程序-update.conf 是否适合放置此类条件执行(运行 在 wifi 上,在 wifi 下停止)?

添加另一份工作:

start on file EVENT=modify FILE=/var/run/engine/wifi or starting app-update

task

script
    if grep -q "^up" /var/run/engine/wifi && \
       initctl status engine | grep -q "start/running"
    then
        start app-update
    elif grep -q "^down" /var/run/engine/wifi; then
        stop app-update
    fi
end script

这将在应用程序更新首次启动时检查 wifi 是否已启动,并在 wifi 启动或关闭时启动和停止应用程序更新。

不幸的是,这有点复杂,因为 Upstart 没有状态支持(只有事件)。