2013-04-20 212 views
1

我有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" 

我嘗試啓動第二PROC當第一突未發現「數據」東西然後在第一PROC做他的工作在「時代」秒的結尾,我需要從第二個結束第一個過程。

我不知道該怎麼做。如果有人能幫助我。

Ps:對不起,如果我的英語不太好。

回答

1

添加一個全局變量,如runProc1,並將其設置爲True。然後,在listen函數中用while runProc1==True替換while 1。在timerkill功能,time.sleep(int(times))

+0

我能做到這一點之後添加

global runProc1 runProc1 = False 

。謝謝 。 – lll 2013-04-20 17:11:57

+0

它可以工作,但它開始第二個proc而不知道第一個是否收到任何東西。我不知道如何啓動第二個proc,只有當第一個proc收到任何數據而沒有打破循環。 – lll 2013-04-20 17:51:51

+0

@ user2275322:如果我找到了你,你想添加一個可能性來啓動第二個進程而不停止第一個進程?如果是這樣,只需要添加一個變量給timerkill,比如'killProc1',默認爲False,然後在timerkill函數中添加一個if。 – jazzpi 2013-04-21 19:44:26