【问题标题】:Linux, code that checks there are no currently running cron jobs?Linux,检查当前没有正在运行的 cron 作业的代码?
【发布时间】:2013-07-16 15:34:56
【问题描述】:

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

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

谢谢!

【问题讨论】:

  • 这是一个非常有趣的问题。我没有答案,但有一个建议:您能否遍历ps 列表,查看父进程是否为 cron pid,或者 cron 是否清理了以管理方式启动的进程的父进程?

标签: linux bash unix cron process-management


【解决方案1】:

有趣的问题;)

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

【讨论】:

  • 谢谢,这是如何工作的?我不确定 cron 进程的结构——实际上它看起来不太好用,看起来 CROND 可能会启动这些进程?
  • 所有由 cron 运行的作业都是从 cron 创建的分叉进程开始的。上面遍历了所有由 cron (pgrep cron) 分叉的进程,并且对于所有这些 pids 列出了这些进程的子进程
【解决方案2】:

你可以这样阅读crontab

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

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

【讨论】:

    猜你喜欢
    • 2012-08-18
    • 2016-08-21
    • 2012-09-28
    • 1970-01-01
    • 1970-01-01
    • 2016-03-19
    • 2014-08-08
    • 2014-01-07
    相关资源
    最近更新 更多