我有很多台计算机,每台计算机都在左右启动 cron 作业。
这些都是服务器计算机和台式计算机。
在台式计算机上,如果用户在 cron 作业运行时关闭计算机会很不方便。
我正在考虑 mv-ing shutdown 命令,并让用户通过专用功能关闭,该功能又会运行 shutdown 命令,但只有在所有 cron 作业停止运行后才会运行。
我是不是想错了?
或者 shutdown 命令是否已经考虑了 cron 作业?
答案1
shutdown 命令对 cron 作业一无所知,但如果您使用的是现代系统,那么 shutdown 实际上是由 systemd 处理的,并且 systemd 知道抑制剂,它允许您在命令运行时阻止某些活动,例如系统关闭、挂起等。
您可以使用systemd-inhibit
命令来运行带有抑制锁的命令。因此,如果您有一个 cron 作业执行一些不应被中断的操作(例如进行系统备份或安装软件包升级),您可以替换诸如...
0 0 * * * /path/to/backup-script.sh
和:
0 0 * * * systemd-inhibit --what=shutdown /path/to/backup-script.sh