2013-04-20 2 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" 

Я стараюсь, чтобы начать второй прок, когда первый отросток нашли что-нибудь в «данных», то в то время как первая процедура делает свою работу . В конце «раза» второй мне нужно закончить первый процесс со второго.

Я не знаю, как это сделать. Если кто-нибудь может мне помочь.

Пс: Извините, если мой английский не очень хорош.

ответ

1

Добавьте глобальную переменную, например runProc1, и установите ее в True. Затем в функции listen замените while 1 на while runProc1==True. В функции timerkill добавьте

global runProc1 
runProc1 = False 

после time.sleep(int(times)) линии

+0

Я сделаю это. Спасибо . – lll

+0

Он работает, но он запускает вторую прок, не зная, получил ли первый что-нибудь. Я не знаю, как запустить вторую процедуру только тогда, когда первый proc получил любые данные, не нарушая цикл. – lll

+0

@ user2275322: Если я получу вас правильно, вы хотите добавить возможность запуска второго процесса без остановки первого процесса? Если это так, просто добавьте переменную в timerkill, например 'killProc1', которая по умолчанию имеет значение False и добавляет if в функцию timerkill. – jazzpi

Смежные вопросы