Прекратить утилиту командной строки Linux из Python
У меня есть утилита командной строки от canutils
называется candump
, Это работает так:
Я запускаю Candump (указав автобус, из которого я хочу сбросить)
root@beaglebone: candump can0
Затем он работает, пока я не закончу CTRL+C
Однако, когда я запускаю его в скрипте Python, вот так.
Popen(["candump","can0"],stdout=PIPE)
или же
call(["candump","can0"])
Я не уверен, как это закончить. Есть идеи?
2 ответа
Решение
Не используйте команду call, если вы хотите контролировать подпроцесс
Если вы используете Popen, как вы делали выше, вам следует присвоить его переменной следующим образом:
p = Popen(["candump","can0"],stdout=PIPE)
Получив p, вы можете использовать одну из следующих команд SIGNAL: http://docs.python.org/2/library/subprocess.html
Использование Popen()
и позвоните send_signal(signal.SIGINT)
на возвращенный Popen
объект.