我有一个长期运行的 python 应用程序,由 monit 监控,每分钟检查是否一切正常。这很棒,但是,如果应用程序行为不当,我希望用户能够杀死它,到目前为止,这看起来像是一个简单的系统调用:
subprocess.run('monit stop app')
这样,自动重新启动就不会在下一次检查时启动 - 它会停止并变得不受监控。
但即使在此之后,我也希望它在晚上的某个时候重新启动,这样就不会依赖用户忘记重新启动。我将如何添加一个 cron 表达式来执行此操作,而不丢失每分钟的正常检查?
目前配置的相关部分只是:
check process app with pidfile /var/run/app.pid
start program = "/proj/folder/app/launchscript.sh start"
stop program = "/proj/folder/app/launchscript.sh stop"
# and with pseudocode I would like something like
if app is stopped or not monitored at 0 3 * * * then start
这可能吗?如果没有,我可以从发出 monit 启动的应用程序中创建一个 crontab 条目,但我宁愿坚持 monit。