我需要创建一个 cron 作业,在后台运行 bash 脚本,除非被杀死,否则该脚本不会结束。 bash 启动一个进程,该进程应该持续运行大约 28 小时,然后我需要另一个 cron 作业来终止它。第一个 cron 每天早上 0:00 运行,启动该进程。第二个 cron 在凌晨 4:00 运行,必须终止前一天启动的进程,留下当天运行的进程。
根据我的搜索,我应该将进程的 pid 存储在一个文件中,然后让第二个 cron 访问它,但是如何以及在哪里?在 cron 中还是在 bash 中?考虑到bash脚本启动的进程直到被杀死才结束,之后的命令会执行吗?
编辑:Ipor Sircer 的解决方案解决了我遇到的特定问题,但我仍然想了解如何将 PID 导出到另一个 CRON 可以访问的文件中。
答案1
使用timeout
命令,更简单:
0 0 * * * timeout 28h /home/script.sh
附言。请记住在 crontab 中使用完整路径。