我正在尝试杀死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(),理想情况下无需更改代码的整体结构?
答案 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
。