如何在不重新启动的情况下启动Cron作业?


11

我使用cron作业offlineimap每2分钟致电一次:

*/2 * * * * /usr/bin/offlineimap > ~/Maildir/offlineimap.log 2>&1

我需要杀死cron来解决问题。然后如何重新启动cron作业(不重新启动)?我在网上找到了这个“解决方案”:

mylogin@myhost:~$ sudo /etc/init.d/cron restart
Rather than invoking init scripts through /etc/init.d, use the service(8)
utility, e.g. service cron restart

Since the script you are attempting to invoke has been converted to an
Upstart job, you may also use the stop(8) and then start(8) utilities,
e.g. stop cron ; start cron. The restart(8) utility is also available.
cron stop/waiting
cron start/running, process 26958

但是,使用时ps -ef | grep ...,我看不到工作...怎么了?


您看不到哪个工作?
Spack

1
打开您的工作crontab,注释掉该工作,进行维护,然后取消注释...
jasonwryan

Answers:


12

Cron方法

如果您具有sudo特权,则可以停止/启动cron服务。我相信这就是您在网上找到的解决方案所解释的。

根据您使用的Linux发行版,可以执行以下命令:

# redhat distros
$ sudo /etc/init.d/crond stop
... do your work ...
$ sudo /etc/init.d/crond start

或执行以下命令:

# Debian/Ubuntu distros
$ sudo service cron stop
... do your work ...
$ sudo service cron start

锁定文件类型的方法

当您希望offlineimap任务暂缓执行并且暂时不运行时,您也可以在/ tmp目录中放置一个“ dontrunofflineimap”文件。

该过程将像这样工作。您可以像这样触摸/ tmp中的文件:

touch /tmp/dontrunofflineimap

将cron作业修改如下:

*/2 * * * * [ -f /tmp/dontrunofflineimap ] || /usr/bin/offlineimap > ~/Maildir/offlineimap.log 2>&1

该文件存在时,它将实质上阻止该offlineimap应用程序运行。如果要恢复,只需删除该/tmp/dontrunofflineimap文件。


4

另一个解决方案是编辑crontab并注释掉该作业以将其禁用。这是一个更好一点的cron可能会安排其他工作也是如此。

以下命令有助于:

crontab -e

如果它是根目录的crontab而不是用户目录的:

sudo crontab -e

要注释掉作业,请#在该行的开头添加一个。像这样:

# */2 * * * * /usr/bin/offlineimap > ~/Maildir/offlineimap.log 2>&1

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.