帮助理解:cron
和at
命令之间有没有关系。
实际上,如果我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/atrun
cron 每隔几分钟运行一次。
在我的 Debian 7 系统上,我atd
运行着一个独立于 cron 执行的服务。尽管如此,它还是存储在 中的 jobs 中/var/spool/cron/{atjobs,atspool}
。
相应地,我有一个/etc/init.d/atd
在启动时启动该服务。我相信这种用法atd
在许多 Linux 系统上都很常见,其中似乎包括 SUSE。在这种情况下,at
和cron
彼此不相关且独立。
您可以确认您的系统如何工作。停止 cron 服务并运行以下命令:
echo 'touch /tmp/testfile' | at now + 1 minute
1分钟内检查是否/tmp/testfile
存在。如果是,at
则作业正在运行。
答案2
两者都有一个单独的守护进程。守护进程crond
运行您的cron
作业,atd
守护进程运行at
作业。
man at
您可以使用和阅读手册页man crond
。