首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >python在使用` `while true`循环意外退出后重新启动

python在使用` `while true`循环意外退出后重新启动
EN

Stack Overflow用户
提问于 2017-11-22 16:01:26
回答 2查看 819关注 0票数 0

我用while true编写了一个python脚本来执行捕获电子邮件附件的任务,但有时l发现它会在服务器上意外退出。

L在本地运行了4个多小时,没有任何问题,所以l可以确认代码是正确的。

那么,有没有一种机制可以在python意外退出时重启它,比如进程监控?我是linux的新手。

备注:l运行此python脚本,就像在shell脚本中运行python attachment.py &一样。

EN

回答 2

Stack Overflow用户

发布于 2017-11-22 16:12:56

虽然@triplee的评论肯定会起作用,但我担心会有一些事情发生,你会更好地理解。这就是脚本失败的原因。

如果没有进一步的细节,很难推测可能会发生什么。作为第一个调试工作,您可以尝试将整个主体包装在try ... except...块中的while True中,并使用except块来记录错误和/或程序状态。那是,

代码语言:javascript
复制
while True:
    try:
        ... do some stuff...
    except:
        ... log the exception, print to screen, record the values of key variables, etc.
        continue

这将允许您了解故障期间发生的情况,并编写更健壮的代码来处理该事件。

票数 2
EN

Stack Overflow用户

发布于 2017-11-22 16:06:48

您可以尝试使用Supervisor来管理您的流程。Supervisor能够配置进程退出状态的状态,并尝试重新启动它。

附加的是official documentexample in Ubuntu

配置示例

代码语言:javascript
复制
[program:nodehook]
command=/usr/bin/node /srv/http.js
directory=/srv
autostart=true
autorestart=true
startretries=3
stderr_logfile=/var/log/webhook/nodehook.err.log
stdout_logfile=/var/log/webhook/nodehook.out.log
user=www-data
environment=SECRET_PASSPHRASE='this is secret',SECRET_TWO='another secret
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47429532

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档