2010-11-01 144 views

回答

1

如果您对真正低级别的进程活动感兴趣,可以在strace下运行python解释器,将标准错误重定向到文件。

如果你只在检查Python代码时,你的机器人崩溃兴趣的话,你必须在碰撞发生源的位置,你可以用该位置与except子句中try/exceptbreak into the debugger

import pdb; pdb.set_trace() 

虽然你可能需要在非守护模式下运行你的僵尸工具。

1

如果您知道它仍然在运行,您可以将它堆叠起来以查看它的回传。我不确定这将是多么有用,因为你会看到解释器的调用堆栈。你也可以像别人提到的那样尝试strace或ltrace。

我也会确保在脚本运行的任何环境中,你已经设置了ulimit -c unlimited,以便在python中生成一个核心的时候它会彻底崩溃。

我可能会尝试的另一件事是由不等待它的孩子执行此作业。这应该会导致proc表条目作为僵尸存在,即使当潜在的工作已经退出时也是如此。

0

一种廉价的方式来获得有关该问题的一些额外的线索将开始phenny与

/etc/init.d/phenny start 2>/tmp/phenny.out 1>&2 

当它崩溃,检查/tmp/phenny.out的尾巴Python的回溯。

0

如果您只需要验证进程正在运行,你可以只运行一个脚本来检查命令

PS AX的输出| grep [p] henny

每隔几秒钟。如果它是空的,那么显然这个过程是死的。