Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/344.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何从另一个进程中杀死一个进程?_Python_Time_While Loop_Multiprocessing_Exit - Fatal编程技术网

Python 如何从另一个进程中杀死一个进程?

Python 如何从另一个进程中杀死一个进程?,python,time,while-loop,multiprocessing,exit,Python,Time,While Loop,Multiprocessing,Exit,我这里有两个进程: 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 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:如果我的英语不是很好,我很抱歉。

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

global runProc1
runProc1 = False

time.sleep(int(times))
行之后添加一个全局变量,如
runProc1
,并将其设置为
True
。然后,在
listen
函数中,将
while 1
替换为
while runProc1==True
。在
timerkill
函数中,添加

global runProc1
runProc1 = False

time.sleep(int(times))之后

我会这样做。谢谢。它可以工作,但它会在不知道第一个进程是否收到任何信息的情况下启动第二个进程。我不知道如何在第一个进程收到任何数据时才启动第二个进程,而不中断循环。@user2275322:如果我没有弄错,您是否希望添加一种在不停止第一个进程的情况下启动第二个进程的可能性?如果是这样,只需向timerkill添加一个默认为False的变量,如
killProc1
,然后向timerkill函数添加一个If。我会这样做。谢谢。它可以工作,但它会在不知道第一个进程是否收到任何信息的情况下启动第二个进程。我不知道如何在第一个进程收到任何数据时才启动第二个进程,而不中断循环。@user2275322:如果我没有弄错,您是否希望添加一种在不停止第一个进程的情况下启动第二个进程的可能性?如果是这样,只需向timerkill添加一个默认为False的变量,如
killProc1
,然后向timerkill函数添加一个If。