【发布时间】:2011-06-20 22:09:33
【问题描述】:
您好,我必须从 Rails 控制器重新启动 Apache 我尝试使用 %x{} 和 system 命令执行此操作,但失败了,所以我决定使用 cron 执行此操作是否可以使 cron 任务仅执行一次?
【问题讨论】:
标签: ruby-on-rails cron
您好,我必须从 Rails 控制器重新启动 Apache 我尝试使用 %x{} 和 system 命令执行此操作,但失败了,所以我决定使用 cron 执行此操作是否可以使 cron 任务仅执行一次?
【问题讨论】:
标签: ruby-on-rails cron
cron 的一次性运行版本称为at。有关说明,请参阅 http://en.wikipedia.org/wiki/At_%28Unix%29,并注意将“现在”指定为时间会使其立即运行。
【讨论】:
at 作业,atq 可以显示已注册的作业,atrm 可以从您的at 队列中删除作业,at -c <jobid> 可以向您显示将执行的具体内容在哪个环境中。
安排一个 cron 作业只运行一次有点棘手,但可以通过自删除脚本来完成!将您的脚本安排在 cron 中下一分钟或其他更合适的时间,
* * * * * /path/to/self-deleting-script
自删除脚本会是这样的,
#!/bin/bash
# <your job here>
crontab -l | grep -v $0 | crontab - # to delete your script from the cron
#restart your cron service
rm -f $0 #delete the script now
它解决了我在 openwrt 路由器中无法安装 at 命令的问题。
【讨论】: