杀死从已结束的进程启动的进程 - Python

时间:2015-05-15 11:06:46

标签: python multiprocessing

我正在尝试杀死Python中的一个进程,该进程是从另一个进程启动的,我无法找到放置“.terminate()”的正确位置。

为了更好地解释自己,我将发布一些示例代码:

from multiprocessing import Process
import time

def function():
    print "Here is where I am creating the function I need to kill"
    ProcessToKill = Process(target = killMe)
    ProcessToKill.start()

def killMe():
    while True:
        print "kill me"
        time.sleep(0.5)

if __name__ == '__main__':
    Process1 = Process(target = function)
    Process1.start()

我的问题是,在哪里可以放置ProcessToKill.terminate(),理想情况下无需更改代码的整体结构?

1 个答案:

答案 0 :(得分:2)

你可以抓住ProcessToKill对象,以便以后可以杀死它:

from multiprocessing import Process
import time

def function():
    print "Here is where I am creating the function I need to kill"
    ProcessToKill = Process(target = killMe)
    ProcessToKill.start()
    return ProcessToKill

def killMe():
    while True:
        print "kill me"
        time.sleep(0.5)

if __name__ == '__main__':
    Process1 = function()
    time.sleep(5)
    Process1.terminate()

在这里,我已经在另一个function对象中移除了Process的包装,因为对于示例来说,它似乎是多余的,但您应该能够使用{{1}执行相同的操作运行另一个Process

相关问题