【问题标题】:how to kill a processus from an other processus?如何从另一个进程中杀死一个进程?
【发布时间】:2013-04-13 22:08:12
【问题描述】:

我这里有 2 个进程:

def listen() :
   while 1 :
      data = sock.recv(1024)
      ip_header = data[:20]
      ips = ip_header[-8:-4]
      source = '%i.%i.%i.%i' % (ord(ips[0]), ord(ips[1]), ord(ips[2]), ord(ips[3]))
      print 'Ping from %s' % source

这里:

def timerkill() :
   print "Launch proc2"
   print times
   time.sleep(int(times))
   print "End of proc2"

当第一个进程在“数据”中找到任何内容时,我尝试启动第二个进程,然后在第一个进程完成他的工作时。在“时间”秒结束时,我需要从第二个进程结束第一个进程。

我不知道该怎么做。如果有人可以帮助我。

Ps : 如果我的英语不是很好,我很抱歉。

【问题讨论】:

    标签: python time while-loop multiprocessing exit


    【解决方案1】:

    添加一个像runProc1 这样的全局变量并将其设置为True。然后,在listen 函数中将while 1 替换为while runProc1==True。在timerkill函数中,添加

    global runProc1
    runProc1 = False
    

    time.sleep(int(times)) 行之后

    【讨论】:

    • 我会这样做的。谢谢。
    • 它可以工作,但它开始第二个过程而不知道第一个过程是否收到任何东西。只有当第一个 proc 收到任何数据而没有中断循环时,我才知道如何启动第二个 proc。
    • @user2275322:如果我猜对了,您想增加启动第二个进程而不停止第一个进程的可能性吗?如果是这样,只需向 timerkill 添加一个变量,例如 killProc1,默认为 False,并向 timerkill 函数添加一个 if。
    最近更新 更多