Команда Linux для запуска скрипта с интервалами - PullRequest
9 голосов
/ 05 июля 2011

У меня есть команда, которую я запускаю с терминала в Ubuntu

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

Мне нужно остановить этот запуск, а затем перезапускать его каждые 10 секунд - при необходимости я могу запустить его из файла .sh.

Каков наилучший способ сделать это? Я хотел бы, чтобы все было в одном сценарии, если это возможно, поэтому , а не , который заинтересован в использовании заданий cron для его запуска - наверняка есть какой-то способ сделать цикл с задержкой чисто в сценарии оболочки?

Самым близким эквивалентом, который я могу придумать, является JavaScript setInterval(function(),10000);

Ответы [ 3 ]

16 голосов
/ 05 июля 2011

Вы можете попробовать что-то вроде этого:

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 $!).

2 голосов
/ 18 ноября 2014

Мне нравится команда ~ $ watch -n sec

iE

watch -n 10 ls /home/user/specialdata

watch -n 30 csync /dir/A /remote/dir/B
1 голос
/ 05 июля 2011

есть sleep и at, если вам не нравится cron

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

Читайте справочные страницы, немного поиграйте с ними, и я думаю, было бы легко построить то, что вы хотите, вокруг них.

...