天天看点

python执行js文件报错_永远运行Python脚本,记录错误并在崩溃时重新启动

supervisord非常适合这类事情.虽然我曾经用cron作业检查程序是否每隔几分钟仍在运行,但是supervisord在进程内线程中运行所有程序,因此在程序终止的情况下,supervisord将自动重启该进程.我不再需要解析ps的输出来查看程序是否崩溃.

它有一个简单的声明配置文件和可配置的日志记录.默认情况下,它会为你的程序名-stderr.log创建一个日志文件your-program-name-stdout.log,当从OS包管理器安装supervisord时,它会由logrotate自动处理(对我来说是Debian).

如果你不想配置supervisord的日志记录,你应该在python中查看logging,这样你就可以控制进入这些文件的内容.

如果您使用的是debian衍生产品,您应该能够通过以root身份执行apt-get install supervisord来安装和启动该守护程序.

配置文件也非常简单:

[program:myprogram]

command=/path/to/my/program/script

directory=/path/to/my/program/base

user=myuser

autostart=true

autorestart=true

redirect_stderr=True

supervisorctl还允许您以交互方式查看您的程序正在执行的操作,并可以使用supervisorctl启动myprogram等启动和停止多个程序