我怎样才能不断检查python脚本是否全天候运行并且没有关闭?


-1

我有一个python脚本,必须在Linux服务器上全天候运行。什么是确保它起作用的明智方法?

他们建议我使用cron和第二个以某种方式检查第一个脚本的脚本。

Answers:


3

我使用supervisord来做到这一点。Cron可以启动它一次并保持运行(使用@reboot),但是你需要一些不太基本的东西来关注事物。

我的配置文件是每个应用程序(在ubuntu中类似于/etc/supervisord/conf.d/foo.conf)

这是我的ttrss更新脚本文件,但它是一个很好的起点。

command=php ./update_daemon2.php
directory=/var/www/lupinenet/ttrss
autostart=true
startretries=5
stderr_logfile=/var/log/supervisor/ttrss/ttrss.err.log
user=www-data

逐行,

第一行是我要运行的命令(放置你想在这里运行的命令)
第二行是它的目录(这使它更整洁,在我的情况下它在我的web服务器根目录中运行)
它将自动启动并尝试5次。
我想要输出以防出现问题,所以我为stderr_logfile设置了一个文件 - 这是可选的,并设置我想要运行任务的用户。我需要记录这个,但我一直在忘记; p

你可以根据文档来调整它的味道


我的意思是,使用cron运行第二个脚本来检查第一个脚本。
艾伦科罗马诺2016年

以及确保正确运行的原因;)。在第二个cronjob运行之前,不会检查您的第一个脚本。Supervisord负责大部分的复杂性。
Journeyman Geek

什么确保正确运行;) - 这就是我要问的,如何利用第二个脚本和cron?
艾伦科罗马诺2016年

2
编写bash脚本来监视另一个脚本过于复杂。对工作使用适当的工具意味着要少维护,因为这是一个常用的应用程序,错误得到修复。我已经看到supervisord保留了几十个bug的崩溃脚本,最终用户没有注意到。它几乎不复杂。我想你可以使用现代的init系统作为替代方案,但cron根本不适合这个。
Journeyman Geek

2
@AlanCoromano因为您的监视程序脚本也可能崩溃,例如,在OOM场景中。肮脏的黑客不是强大的解决方案。
PatoSáinz
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.