2010-11-01 140 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

每隔幾秒鐘。如果它是空的,那麼顯然這個過程是死的。