Linux,检查当前是否有正在运行的cron作业的代码是什么?

3

我该如何编写一个bash脚本来检查当前是否没有正在运行的cron作业,然后执行一些简单的操作?

我不是在谈论计划在某个时间点运行的cron作业,而是指正在活动运行的进程。

谢谢!


这是一个非常有趣的问题。我没有答案,但有一个建议:您可以运行ps列表,并查看父进程是否为cron pid,或者cron是否清理了由管理启动的进程的父进程? - PaulProgrammer
2个回答

4

有趣的问题;)

for pid in `pgrep cron`;do
  ps uh --ppid $pid;
done|grep -v CRON

谢谢,这个怎么工作?我不确定cron进程的结构——实际上看起来好像并没有完全工作,看起来CROND可能会启动这些进程? - OneSolitaryNoob
所有由cron运行的作业都是从cron创建的分叉进程中启动的。上述代码遍历了所有由cron分叉出来的进程(pgrep cron),并列出了这些进程的子进程。 - Zoltán Haindrich

0

你可以这样读取crontab

crontab -l | grep -v "^#" | awk '{print $6}'

并检查是否有任何脚本/作业正在运行


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接