【问题标题】:Linux command to run script at intervalsLinux命令间隔运行脚本
【发布时间】:2011-09-28 20:28:26
【问题描述】:

我有这个从 ubuntu 终端运行的命令

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);

【问题讨论】:

  • 为什么不使用 cron?似乎是适合这项工作的工具。

标签: linux bash shell command


【解决方案1】:

如果你不喜欢cron,还有sleepat

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

阅读手册页,稍微玩一下,我认为围绕这​​些构建您想要的东西会很容易。

【讨论】:

    【解决方案2】:

    你可以试试这样的:

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

    【讨论】:

      【解决方案3】:

      我喜欢~$ watch -n sec 命令

      i.E.

      watch -n 10 ls /home/user/specialdata
      
      watch -n 30 csync /dir/A /remote/dir/B
      

      【讨论】:

      • 我认为这假设正在监视的进程终止,而 OP 正在运行需要终止的服务器进程。但我不知道手表所以谢谢你的提示。
      • 我们可以用 watch 命令给出以毫秒为单位的时间间隔吗?
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-20
      • 2018-05-04
      • 1970-01-01
      • 1970-01-01
      • 2016-02-20
      相关资源
      最近更新 更多