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 に答える