Python进程包装器

1 投票
2 回答
1323 浏览
提问于 2025-04-17 01:06

我需要用Python写一个程序包装器,这个包装器可以启动一个应用程序,如果这个应用程序崩溃了,它会自动重启。同时,所有的操作记录需要保存到一个从命令行传入的指定日志位置。这样做可以吗?

2 个回答

1

使用 subprocess 模块。用 Popen 来启动一个进程,并获取一个 Popen 对象。根据你的需求,可以使用 Popen.poll() 或者 wait 来获取进程的状态。把这些放在一个循环里,并使用 logging 模块来记录日志。

这是我个人的一点建议。

1

在编程中,有时候我们会遇到一些问题,特别是在使用某些工具或库的时候。比如,有人可能在使用一个叫做“库”的东西时,发现它的某些功能不太好用,或者出现了错误。这种情况很常见,尤其是对于刚开始学习编程的人来说。

通常,解决这些问题的方法是查看文档,看看有没有人遇到过类似的情况,或者在网上搜索一下,看看有没有解决方案。很多时候,其他人也会在像StackOverflow这样的论坛上提问,分享他们的经验和解决办法。

所以,如果你在编程过程中遇到问题,不要着急,先查查资料,看看有没有人已经解决了这个问题。这样可以节省很多时间,让你更快地找到答案。

>>> from subprocess import Popen
>>> def spawner(cmd_list):
...     while True:
...         print "Running proc..."
...         mon_proc = Popen(cmd_list)
...         print "Proc exit: %s" % mon_proc.wait()
... 
>>> spawner(['/bin/sleep', '3'])
Running proc...
Proc exit: 0
Running proc...
Proc exit: 0
Running proc...
Proc exit: 0
Running proc...

撰写回答