Linux cron中的Bash程序,每次程序终止时运行
我想用这个作业在ubuntu中设置一个cron作业 我有一个PythonWebScraping程序,它需要在程序终止后不断地被废弃。换句话说,流程是这样的Linux cron中的Bash程序,每次程序终止时运行,linux,bash,terminal,cron,web-scraping,Linux,Bash,Terminal,Cron,Web Scraping,我想用这个作业在ubuntu中设置一个cron作业 我有一个PythonWebScraping程序,它需要在程序终止后不断地被废弃。换句话说,流程是这样的 If program is terminated, set the cron job again (until infinity in cron's method) something like * * * * * /python.py (but only when the python.py is terminated/finished)
If program is terminated, set the cron job again (until infinity in cron's method)
something like * * * * * /python.py (but only when the python.py is terminated/finished)
有人能指导我写一个bash程序来完成这项工作吗?该程序是python.py
谢谢当程序运行时,请在某处写入临时文件,并确保在程序终止时删除此文件 然后在每次程序运行时测试该文件是否存在。如果有就退出 run.sh
TMP_FILE=/tmp/i_am_running
[ -f $TMP_FILE ] && exit
touch $TMP_FILE
./python.py
rm $TMP_FILE
在crontab中,调用这个run.sh
,而不是python.py
请记住,如果脚本提前退出(被终止,等等),并且tmp文件保留在文件系统中,它将不会再次运行python.py。您还可以做一些事情来防止或检测类似情况。使用mktemp:TMP_FILE=$(mktemp-t myapp.XXX)echo$TMP_FILE/TMP/myapp.025创建TMP_文件,并使用trap clean EXIT清理临时文件:clean(){rm$TMP_FILE;};trap clean EXITso如果程序崩溃或其他什么,那么它会影响程序的结果吗?它实际上是从一个网站上废弃数据。有没有更简单的方法作为替代?使用陷阱来处理早期存在/崩溃,这里你有一些其他的想法-一些其他的想法