当系统关闭时 cron 作业会发生什么?

发布于 2024-12-06 11:43:38 字数 1459 浏览 0 评论 0原文

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

梦巷 2024-12-13 11:43:38

该作业可能会运行,但可能不会完成。 cron 是通过守护进程实现的,因此它始终在运行。根据系统的关闭顺序,cron 实际上可能会在关闭过程中相当晚的时候收到关闭信号,因此安排在关闭开始时的作业可能仍然会运行。

例如,如果关机恰好在 00:00:00 开始,但直到 00:00:05(午夜后 5 秒)才向 cron 发送终止信号(,那么短时间运行的 2 秒作业可能仍有时间 但是,

如果该作业所依赖的任何服务已经关闭或正在关闭,那么它就不太可能完成,例如......该脚本会向 mysql 服务器发送一小段数据。 ..但是mysql在 00:00:01 关闭,你的脚本直到 00:00:02 才到达 mysql 部分。

tl;dr:这是一个竞争条件,你的作业可能会执行,但可能不会。

The job may run, but probably won't complete. cron is implemented via a daemon, so it's always running. Depending on your system's shutdown order, cron may actually be sent the shutdown signal fairly late in the shutdown process, so jobs scheduled for the moment the shutdown started may still run.

e.g. If the shutdown starts at 00:00:00 exactly, but doesn't get to sending cron a kill signal until 00:00:05 (5 seconds after midnight(, then a short running 2-second job may still have time to complete.

However, if any services that job depends on have already been shutdown or are in the process of shutting down, then it's unlikely to be able to finish. e.g.... the script pings a mysql server for one little piece of data... but mysql shut down at 00:00:01 and your script didn't get to the mysql portion until 00:00:02.

tl;dr: it's a race condition and your job MAY execute, but probably won't.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文