`cron` 服务和 `at` 命令

`cron` 服务和 `at` 命令

帮助理解:cronat命令之间有没有关系。

实际上,如果我cron通过运行以下命令来停止 SUSE 中的服务:

/etc/init.d/cron stop

在上述之后,如果我at在工作中运行命令at
例子:

at -f /u01/script1.sh now

答案1

一般来说,确切的调用方法可能因平台和at实现而异。

在任何平台/配置上,作业都可以由定期作业或其他调度程序at运行。cron例如,在 OS X 上,at作业是按一定时间间隔运行launchd/usr/libexec/atrun。类似地,在 FreeBSD 上,/usr/libexec/atruncron 每隔几分钟运行一次。

在我的 Debian 7 系统上,我atd运行着一个独立于 cron 执行的服务。尽管如此,它还是存储在 中的 jobs 中/var/spool/cron/{atjobs,atspool}

相应地,我有一个/etc/init.d/atd在启动时启动该服务。我相信这种用法atd在许多 Linux 系统上都很常见,其中似乎包括 SUSE。在这种情况下,atcron彼此不相关且独立。

您可以确认您的系统如何工作。停止 cron 服务并运行以下命令:

echo 'touch /tmp/testfile' | at now + 1 minute

1分钟内检查是否/tmp/testfile存在。如果是,at则作业正在运行。

答案2

两者都有一个单独的守护进程。守护进程crond运行您的cron作业,atd守护进程运行at作业。

man at您可以使用和阅读手册页man crond

相关内容