我试图写的crontab在Ruby中使用优秀CronEdit宝石一个web前端。我通过狄龙克龙的crontab源代码去,发现它更新一个特定的文件,以便守护进程会在下一次扫描过程中刷新的cron列表。

在人的crontab为VixieCron,它说:

    此外,cron的检查每分钟,看看它的后台打印目录的modtime     (或开/ etc / crontab中的modtime)发生了变化,并且如果它有,cron将会然后     检查所有的crontab的modtime,并重新加载那些已经改变。     每当crontab文件被修改,因此需要的cron不重新启动。注意     在crontab(1)命令更新假脱机目录的modtime每当它     改变一个crontab。

时有任何平台(Ubuntu的,红帽,ArchLinux的,的Mac OS X),以确保手动编辑的Cron文件后独立的方式,守护刷新它没有失败?

有帮助吗?

解决方案 3

非常感谢您gnibbler和亚伦。我只是通过源代码就两个“只要”和“cronedit” Ruby的宝石。他们都做了“的crontab - ”它取代与更新的cron项现有的cron文件。这意味着违背了我原来的问题,这些库利用标准的crontab工具,它反过来会采取一切必要措施来刷新守护程序细节的。

我认为最好的平台无关性,和cron(狄龙了vixie,mcron等)无关的方式来刷新守护程序是始终使用相关的crontab实用程序。即使编程编辑时,用户程序必须在新的cron文件传递给crontab实用程序这将做什么是由特定平台/ cron的要求。

@马克,谢谢你的意见。不过,我想提供一个简单的web前端,用户可以通过WWW定制就像直接编辑crontab文件。

感谢你这么多您的答复!

其他提示

没有,没有。如果你知道这是VixieCron,然后更新目录的时间戳。否则,你也许可以伪造它:你调用EDITOR(这应该弹出的crontab中编辑)之前,设置环境变量crontab -e

我们的想法是将编辑器设置了一些方案,这使得改变。 crontab -e会等待编辑器终止并重新读取该文件,并告诉cron的事情有了变化。

如果你有一个旧版本的cron的,但是,你仍然必须重新启动它。但我怀疑,你可以找到在运行Linux或Mac OS X这样的事情古老的版本。

萨现代的Linux发行版有/etc/cron.d/目录,你可以把你的crontab条目作为单独的文件。如果正确地记得新cronfile得到2分钟被写入的内读

如果这是重要的,为什么不使用不同的杠杆?换句话说,有两种选择:

的crontab 1:/做/一些/非常/特定/事情与我需要改变等特定的参数

的crontab 2:/做/什么/需求/到/是/完成

在#2,工作是负责在运行时有什么需要做决定,做它。通过这种设计,需要了解crontab中是如何工作的一些细节层次的概念是无关紧要的。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top