2

我有一个来自canutils被调用的命令行实用程序candump。它是这样工作的:

我运行 candump(指​​定我要转储的总线)

root@beaglebone: candump can0

然后它运行直到我结束它使用CTRL+C

但是,当我像这样在 python 脚本中运行它时。

Popen(["candump","can0"],stdout=PIPE)

或者

call(["candump","can0"])

我不确定如何结束它。有任何想法吗?

4

2 回答 2

3

如果要控制子进程,请不要使用 call 命令

如果你像上面那样使用 Popen,你应该将它分配给这样的变量:

p = Popen(["candump","can0"],stdout=PIPE)

一旦你有了 p 然后你可以在它上面使用以下 SIGNAL 命令之一 http://docs.python.org/2/library/subprocess.html#subprocess.Popen.send_signal

于 2013-03-06T22:59:20.207 回答
2

使用Popen(), 并调用send_signal(signal.SIGINT)返回的Popen对象。

于 2013-03-06T22:59:15.903 回答