Уведомления

Группа в Telegram: присоединиться | Jabber-конференция сообщества: pythonua@conference.jabber.ru

#1 Май 15, 2018 19:59:27

alex.black
Зарегистрирован: 2018-05-15
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

CTRL+C не доходит до подпроцесса

Приветствую, прошу помочь с проблемой: имею необходимость завершить подпроцесс popen, делать это пытаюсь в два этапа: prc.send_signal(signal.CTRL_C_EVENT) + prc.stdin.write(….), но проблема какраз в том, первое отрабатывает 1/10 раз, что никак не устраивает - прошу подсказать что неверно делаю

Офлайн

#2 Май 16, 2018 00:10:30

doza_and
От:
Зарегистрирован: 2010-08-15
Сообщения: 3108
Репутация: +  169  -
Профиль   Отправить e-mail  

CTRL+C не доходит до подпроцесса

1 Приведите код как вы это делаете.
2. можно попробовать жестче поступить. У результата popen есть метод kill()



Офлайн

#3 Май 17, 2018 15:19:12

alex.black
Зарегистрирован: 2018-05-15
Сообщения: 2
Репутация: +  0  -
Профиль   Отправить e-mail  

CTRL+C не доходит до подпроцесса

doza_and
1 Приведите код как вы это делаете.2. можно попробовать жестче поступить. У результата popen есть метод kill()

 prc = subprocess.Popen(prog, stdin=subprocess.PIPE, stdout=stream)
pid = prc.pid
while psutil.pid_exists(pid):
    if  time> time_allowed and signaled == False:
        prc.send_signal(signal.CTRL_C_EVENT)
        prc.stdin.write('Y\n'.encode())
        signaled = True
    time.sleep(1)
    time= time+ 1

жестче увы нельзя, нужно сохраниться, а не просто убить процесс

Отредактировано alex.black (Май 17, 2018 15:20:15)

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version