2017-02-07 21 views
1

私はipmitoolを使用して、HPのVSPでシリアルオーバーLAN接続を開始しています。私は手紙cとブレークコマンドを送信しようとしています。python:サブプロセスでコマンドを送信

p = subprocess.Popen(CMD + " sol activate", shell=True, stdout=subprocess.PIPE) 
#I want to send '~~B' and 'c' while watching the output. 
while True: 
    output = p.stdout.readline() 
    if output: 
     print output 
+0

このプロセスを中断したいのですか? –

答えて

2

「c」ボタンを押して、サブプロセスで実行するプロセスを強制終了することがわかります。このrecipeを使用してキーを検出し、次のようなスレッド内で簡単な関数を呼び出すことができます:

import subprocess 
import os 
import signal 
import thread 
from getch import _Getch 

def kill(pro): 
    if _Getch()() == "c": 
     os.killpg(os.getpgid(pro.pid), signal.SIGTERM) 

CMD="sudo apt-get update" 
p = subprocess.Popen(CMD, shell=True, stdout=subprocess.PIPE) 
thread.start_new_thread(kill, (p,)) 
while True: 
    output = p.stdout.readline() 
    if output: 
     print output 
+0

@hanzねえ、このソリューションは機能しましたか? –

関連する問題