Мне нужно, чтобы остановить процесс, созданный с помощью subprocess.call
в Python, когда я получаю клавиатуры прерывания (Ctrl-C)убийство subprocess.call после KeyboardInterrupt
Проблема р не получает значение, присвоенное ему до него завершает выполнение
р = subprocess.call (CMD)
Так что я не могу использовать os.kill
убить этого. Кроме того, нельзя использовать shell=True
, потому что причины.
То, что я хотел бы сделать, это:
try:
p = subprocess.call(cmd)
except KeyboardInterrupt:
os.kill(p.pid,signal.SIGTERM)
sys.exit('exited after ctrl-c')
Вы можете получить PID дочернего процесса, как описано здесь: http://stackoverflow.com/questions/3332043/obtaining-pid-of-child-process –
Спасибо, но это * nix specific. Мне тоже нужна поддержка Windows. – anujdeshpande