crontab 是多线程的吗?

mat*_*eug 3 linux cron multithreading

我不知道在哪里可以找到有关 crontab 的更多信息,所以我在这里问。crontab 是多线程吗?它是如何工作的?

glg*_*lgl 9

可能不是。所有 cron 要做的就是(简单地表达它)观察直到运行一个或另一个作业,如果是,则创建一个运行该作业的进程并定期检查该作业是否完成以将其清理干净.

MT 可以用于这种等待,但我认为这太过分了。使用wait()/ waitpid()family 功能,可以一次查看所有孩子(对幼儿园老师有好处:-D)。而且您可以在不阻塞的情况下查看,因此您也有可能继续寻找执行下一个作业的时间。并且也SIGCHLD存在。


Kus*_*nda 6

Linux 有许多 cron 实现。它们中的任何一个是否是多线程的并不是我认为真正相关的问题,除非您尝试编写自己的 cron 守护程序实现。

  • 安排在同一时间的作业不会按顺序运行,它们将同时执行(接近)。cron 守护进程是用单线程还是多线程实现都没有关系。您可以通过添加三个 cron 作业来轻松测试这一点,每分钟执行一次;一个睡眠 40,一个睡眠 50 和一个睡眠 55。然后监视进程,您将看到所有三个同时运行(至少每分钟后的前 40 秒)。 (2认同)