2013-12-13 153 views
0

我需要幫助來澄清一些概念。現在我正在使用芹菜(一個python調度程序)來運行任務。由於芹菜對任務有時間限制(300秒應該是默認值),而且我的任務很可能會運行更長時間,所以我決定在該任務中產生一個流程來完成實際工作。但是,我不知道的是,如果在任務執行期間,我不小心重啓/停止芹菜服務器,那麼產生的進程是否還在工作?或者它會成爲一個殭屍進程?請儘可能給我一些細節。謝謝!Python多處理:如果父進程被終止,子進程是否會掛起?

編輯:還有一個問題:當你做

p = Process(target=f, args=('test',)) 
p.start() 

是否p成爲當前進程子進程?或者它只是創建一個獨立的過程?

回答

1

恐怕我只能回答你的第一個問題,不是很熟悉芹菜,也許你可以在docs找到答案。

你的問題突出了守護進程和非守護進程之間的區別。

守護進程線程是那些不會掛斷主程序的線程。無論主程序在做什麼,他們都會一直工作直到完成。

非守護進程線程正好相反。他們必須在主程序結束前被殺死。

This question/answer做了很好的解釋差異和影響。

在你的問題的範圍內,如果你的進程是守護線程,如果你重啓/停止你的服務器,它們應該沒問題。但是,如果它們不是守護進程線程,則不應該能夠停止芹菜服務器(假設我瞭解守護線程是正確的)

希望這有助於

相關問題