как отправить "Ctrl + Break" в подпроцесс через PID или обработчик - PullRequest
2 голосов
/ 25 августа 2011
import subprocess

proc = subprocess.Popen(['c:\windows\system32\ping.exe','127.0.0.1', '-t'],stdout=subprocess.PIPE) 
while True: 
  line = proc.stdout.readline() 
  print "ping result:", line.rstrip() 
  #sendkey("Ctrl+Break", proc)            # i need this here, this is not for terminate the process but to print a statistics result for the ping result.

Если кто-то знает, как это сделать, пожалуйста, поделитесь со мной, спасибо!

Ответы [ 2 ]

2 голосов
/ 25 августа 2011

Клавиши Ctrl + Break - это сигнал SIGBREAK.

В linux вы можете отправить этот сигнал с помощью команды kill, в Windows это немного отличается. Вы можете использовать инструмент SendSignal .

1 голос
/ 25 августа 2011

Windows?Попробуйте это:

import signal
proc.send_signal(signal.SIGBREAK)

Если вы имели в виду прерывание сигнала (kill -2)

import signal
proc.send_signal(signal.SIGINT)
...