2013-12-13 105 views
0

我需要帮助来澄清一些概念。现在我正在使用芹菜(一个python调度程序)来运行任务。由于芹菜对任务有时间限制(300秒应该是默认值),而且我的任务很可能会运行更长时间,所以我决定在该任务中产生一个流程来完成实际工作。但是,我不知道的是,如果在任务执行期间,我不小心重启/停止芹菜服务器,那么产生的进程是否还在工作?或者它会成为一个僵尸进程?请尽可能给我一些细节。谢谢!Python多处理:如果父进程被终止,子进程是否会挂起?

编辑:还有一个问题:当你做

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

是否p成为当前进程子进程?或者它只是创建一个独立的过程?

回答

1

恐怕我只能回答你的第一个问题,不是很熟悉芹菜,也许你可以在docs找到答案。

你的问题突出了守护进程和非守护进程之间的区别。

守护进程线程是那些不会挂断主程序的线程。无论主程序在做什么,他们都会一直工作直到完成。

非守护进程线程正好相反。他们必须在主程序结束前被杀死。

This question/answer做了很好的解释差异和影响。

在你的问题的范围内,如果你的进程是守护线程,如果你重启/停止你的服务器,它们应该没问题。但是,如果它们不是守护进程线程,则不应该能够停止芹菜服务器(假设我了解守护线程是正确的)

希望这有助于

相关问题