2017-11-06 8 views
0

私はコマンドプロンプトを起動し、コマンドを実行しようとしています。 しかし、私はキルを通してそれをクローズしようとしていたときに()または終了()、CMDウィンドウは以下pythonのサブプロセスモジュールを介してcmdを終了できません

を閉じません。私のコードは

from subprocess import Popen, CREATE_NEW_CONSOLE 
test=Popen(["cmd","/K","appium -p 4723"],creationflags=CREATE_NEW_CONSOLE) 
sleep(10) 
test.kill() 
+0

私は右のあなたは、追加のプロセスで他のコマンドを実行します 'cmd'を実行している「連鎖」コマンドを持っていることがわかります。 'test.kill()'は 'cmd'プロセスだけを終了します。プロセス間の関係がどのように関係しているかによって、子供はそれを生き残るかもしれません。 –

+0

@クラウス..はい、そうですよ!私は "テスト"オブジェクトに関連するすべてのプロセスを殺すしたい –

答えて

0

あなたは別のサブプロセスを実行し、PIDによって殺すことができます。

from subprocess import Popen, CREATE_NEW_CONSOLE 
test=Popen(["cmd","/K","appium -p 4723"],creationflags=CREATE_NEW_CONSOLE) 
pid = test.pid 
sleep(10) 

subprocess.Popen('taskkill /F /T /PID %i' % pid) # force kill and kill all child processes 
0

この

import os 
os.system("taskkill /im make.exe") 
を試してみてくださいです
0
cmd = 'kill -%d %d' % (signal.SIGINT, os.getpid()) 
subprocess.call(cmd.split()) 

これは現在のプロセスを終了させます

+0

それは私にエラーを与えるWindowsError:[エラー2]指定されたファイルを見つけることができません –

+0

あなたのpythonパスを正しく設定していない場合は、この問題は – Sanket

+0

'subprocess.call(cmd.split()、shell = True)のようなサブプロセスコールに' shell = True'を追加する '@pankajmishra – Sanket

関連する問題