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

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

我使用 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 ...,我看不到该工作...出了什么问题?

答案1

克朗方法

如果您有 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文件即可。

答案2

另一个解决方案是编辑 crontab 并注释掉该作业以禁用它。这更好一点,因为cron也可以安排其他工作。

以下命令有帮助:

crontab -e

如果是 root 的 crontab 而不是用户的:

sudo crontab -e

要注释掉作业,请#在行首添加 。像这样:

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

答案3

你可以阅读http://tutscode.com/how-to-use-crontab-in-linux/获取有关 crontab 的更多信息。

相关内容