我在 init.d 中有许多服务,它们都是简单的一行命令,包含在每隔几秒重复一次的脚本中。它们的模板如下所示:
例如
#!/bin/sh
autostart() {
while true
do
$@ ; sleep 20
done
}
case "$1" in
start)
echo " started"
autostart /path/to/checksomethingquickly
;;
stop)
me=`basename $0`
killall checksomethingquickly $me
;;
esac
## End of File
此“服务”的关键是每 20 秒调用一次 checksomethingquickly。(因此对于 cron 来说它太快了。)我们希望它在收到命令时启动,并在收到命令停止时终止任何/所有正在运行的实例。
在我看来,它可能是 upstart 中的“任务作业”,但我不清楚如何确保任务无限重复并且间隔 20 秒。确保它是序列化的也将是一个不错的改进。
这种脚本能变成新贵脚本吗?如果能,该怎么做?