2017-05-19 6 views
0

私はPythonスクリプトの下に使用して名前を「MyClassの」とjavaプロセスを殺すためにしようとしています:PythonでJavaプロセスを名前でkillするには?

import os 
os.system("kill $(ps aux | grep 'MyClass' | grep -v 'grep' | awk '{print $2}')") 

しかし、これは以下のように私に出力を提供し、プロセスがまだいることを私は知っている

sh: 1: kill: Usage: kill [-s sigspec | -signum | -sigspec] [pid | job]... or 
kill -l [exitstatus] 
512 

を実行しています$記号はここでの問題ですが、この作業の仕方は分かりません。

助けてください/ヒントありがとうございます。おかげさまで 私は必要なものを取って、それぞれをループすることによって、

私はすべてのプロセスを取得していますし、それが見つかった場合は、単にそれらを殺す:

+0

(「 'PSの補助を殺す| grepを 'MyClassの' |はgrepの-v 'はgrep' | awkは' '{$ 2印刷}')エラーになります – kuro

+0

@kuroおかげ?。 –

+0

SOがコメントを変更した可能性があります。強調表示された部分の前後に '' 'を追加してください – kuro

答えて

0

は、ここで私は別の方法を持っています。

私はこれらの概念を利用して、同じカテゴリに対して同じクライアントに対して実行されているプロセスの数を調べています。

os.systemについてどのように
# this will fetch the processes in stdout var 
processes = Popen(['ps', '-ef'], stdout=PIPE, stderr=PIPE) 
stdout, error = processes.communicate() 

for line in stdout.splitlines(): 

    if (line.__contains__("Process_name to check")): 

     pid = int(line.split(None, 1)[0]) 
     os.kill(pid, signal.SIGKILL) 
関連する問題