2011-07-04 40 views
-1

我正在執行關鍵任務程序,而且我的老闆要求我寫一個程序來保護這個關鍵任務程序不被終止很長時間。這個關鍵任務程序是用python編寫的。我用C編寫了一個保護程序。但是在處理os.fork時遇到了一個問題。請看下面的代碼以供參考os.fork問題

pid = os.fork() 
if pid == 0: 
    execlp(myprotector, myprotector, ......) 
elif pid > 0: 
    return_pid = pid 

我用ps aux | grep myprotector在我的終端列出我的節目。但ps aux列出的pid與上述代碼中生成的pid不同。我不知道爲什麼。確實存在一個與上述代碼生成的pid相對應的pid,但它是一個過程。你能幫我解決這個問題嗎?謝謝。

+0

你說的'protector'是什麼意思?你想保持程序運行嗎?如果是的話,那麼還有很多其他解決方案(supervisord,daemontools,monit,...) – viraptor

+1

「......但它是一個過程」。 _什麼程序?這是由shell腳本啓動的「任務關鍵型程序」嗎? – Nemo

+0

也許這與您的目標無關,但如果您希望確保您的任務關鍵型程序重新啓動(如果終止),請查看Monit http://mmonit.com/monit。 –

回答