Прекратить утилиту командной строки 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 объект.

Другие вопросы по тегам