我有一个来自canutils
被调用的命令行实用程序candump
。它是这样工作的:
我运行 candump(指定我要转储的总线)
root@beaglebone: candump can0
然后它运行直到我结束它使用CTRL+C
但是,当我像这样在 python 脚本中运行它时。
Popen(["candump","can0"],stdout=PIPE)
或者
call(["candump","can0"])
我不确定如何结束它。有任何想法吗?
我有一个来自canutils
被调用的命令行实用程序candump
。它是这样工作的:
我运行 candump(指定我要转储的总线)
root@beaglebone: candump can0
然后它运行直到我结束它使用CTRL+C
但是,当我像这样在 python 脚本中运行它时。
Popen(["candump","can0"],stdout=PIPE)
或者
call(["candump","can0"])
我不确定如何结束它。有任何想法吗?
如果要控制子进程,请不要使用 call 命令
如果你像上面那样使用 Popen,你应该将它分配给这样的变量:
p = Popen(["candump","can0"],stdout=PIPE)
一旦你有了 p 然后你可以在它上面使用以下 SIGNAL 命令之一 http://docs.python.org/2/library/subprocess.html#subprocess.Popen.send_signal
使用Popen()
, 并调用send_signal(signal.SIGINT)
返回的Popen
对象。