在 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 没有状态支持(只有事件)。
我有一个应用程序更新服务,它使用它的 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 没有状态支持(只有事件)。