nohup 和 crontab 有什么区别?

nohup 和 crontab 有什么区别?

假设我想每小时删除一个目录的内容,让一个 python 脚本为我执行此操作nohup python dir_cleaner.py &与设置 acronjob为我执行此操作有什么区别?无法找到这种差异的明确解释。假设我还想每小时获得该目录中列出的确切日期+文件,并在文件被删除之前将此输出保存到文件中。最好的方法是什么?如果重复的话,我们深表歉意。

答案1

如果您通过 运行 python 脚本nohup,它只会运行一次。因此,脚本本身必须无限循环工作,并每小时重复删除目录。

另外,如果您的脚本因任何原因失败并停止运行,或者被终止,它不会自行重新启动 - 您必须手动重新启动它。您也不会知道您的脚本不再运行(除了偶尔检查进程列表或您创建的输出文件)。

如果您设置一个 cron 作业每小时运行一次,那么该作业将永远自动重复。即使失败一次,下一小时也会再次运行。

另外,如果您的系统上设置了邮件(安装并配置了一些 MTA),则 cron 作业(如果有)生成的任何输出都将邮寄给您。因此,如果您的工作通常不会产生任何输出,则不会有邮件;但如果失败并且会出现一些错误消息,它会邮寄给您。

这些对我来说是主要的区别。因此,在我看来,cron 作业比仅仅让脚本通过nohup.

相关内容