2011-07-05 33 views
9

运行脚本我有这样的命令,我从一个终端在UbuntuLinux命令,周期性

python2.5 /home/me/web/gae/google_appengine/dev_appserver.py /home/me/web/gae/APPLICATION/trunk 

我需要停止此运行,然后重新启动它每10秒运行 - 我可以从运行此。 sh文件(如有必要)。

这样做的最好方法是什么?如果可能的话,我希望它全部在一个脚本中,所以不是,它热衷于使用cron作业来运行它 - 肯定有一些方法可以在纯shell脚本中执行延迟循环吗?

我能想到的最接近的是JavaScript的setInterval(function(),10000);

+0

为什么不使用cron?看起来像是这份工作的正确工具。 – Sorpigal

回答

14

你可以尝试这样的事:

while true; do 
    python2.5 /home/me/web/gae/google_appengine/dev_appserver.py /home/me/web/gae/APPLICATION/trunk & 
    sleep 10 
    kill $! 
done 

即:永远循环下去(while true),启动python脚本在后台,等待10秒(sleep 10)和杀死后台进程(kill $!)。

1

sleepat如果你不喜欢cron

echo "print after 3min again" 
sleep 180 # or sleep +3m 
echo "hello again, 3min passed" 

阅读手册页,那些玩了一下,和我认为可以很容易地建立你想要的,围绕这些。

2

我喜欢〜$ watch -n sec命令

i.E.

watch -n 10 ls /home/user/specialdata 

watch -n 30 csync /dir/A /remote/dir/B 
+0

我认为这是假定正在观察的进程终止,而OP正在运行需要被终止的服务器进程。但我没有注意到手表,所以谢谢你的提示。 – contrebis