使用Python多进程杀死另一个进程的方法

3
我正在尝试使用Python编写脚本。想法是启动3个进程,其中2个不断输出一条消息,第三个进程则负责在几秒钟后将它们杀死。问题在于我不知道如何告诉第三个进程应该终止哪些进程。
from multiprocessing import *
import time

def OkreciLevi():
   while 1:
       print "okrecem levi"
       time.sleep(3)

def OkreciDesni():
   while 1:
       print "okrecem desni"
       time.sleep(3)

def Koci(levi,desni):
   for vrednost in range(2):
       print str(vrednost)
       time.sleep(3)
   levi.terminate()
   desni.terminate()
   print "kocim"

if __name__== '__main__':
   levi=Process(target=OkreciLevi)
   desni=Process(target=OkreciDesni)
   koci=Process(target=Koci, args=(levi,desni))
   koci.start()
   levi.start()
   desni.start()
   levi.join()
   desni.join()
   koci.join()

另外,为什么不能使用队列或两个队列? - Broseph
2
我是塞尔维亚人,习惯用塞尔维亚语写函数名称。对此感到抱歉。 - JaSamSale
1个回答

1

假设您正在使用*nix类操作系统,我猜您需要执行以下操作:

  1. 获取多进程工作器的PID;
  2. 向它们发送SIGTERM信号。例如使用os.kill

此外,这些信息对您可能有用。


我尝试使用SIGTERM,但它无法识别signal.SIGTERM,所以我想是否有另一种方法来解决这个问题。另一个问题是如何从进程levi和desni获取PID到进程koci。 - JaSamSale
@JaSamSale,请将您的代码发布到任何在线服务(例如http://pastebin.com/),我们会尝试找到解决方法。 - Vitaly Isaev
我找到了一个解决方法,但现在我想知道为什么它不起作用。 - JaSamSale

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接