2017-10-31 11 views
0

これは私が今現在持っている現在のコードであり、私はどのようにしてpidを殺すことができるのだろうかと思っています。Pythonでpidを殺す方法

import commands, signal 
stuid = commands.getoutput("pgrep student") 
deaid = commands.getoutput("pgrep daemon") 
print stuid 
os.kill(stuid, signal.SIGKILL) 
print deaid 
os.kill(deaid, signal.SIGKILL) 

編集: だから、最後に、私はちょうどそのキル後のpidを配置killコマンドを実行するには、端末を取得するためにos.system使用。

import commands, os 
stuid = commands.getoutput("pgrep student") 
deaid = commands.getoutput("pgrep daemon") 
print stuid 
os.system("kill "+stuid) 
print deaid 
os.system("kill "+deaid) 

これは私の最終結果です。これが将来人々を助けてくれることを願っています。

+0

おそらくこれをネイティブに行う方法はありますが、[サブプロセス](https://docs.python.org/2/library/subprocess.html)を使用することができます。 – alex

+0

https://docs.python.org/2/library/signal.html – sotona

+0

[psutil.Process](http://psutil.readthedocs.io/en/latest/#psutil.Process)についてはどうですか? – Wondercricket

答えて

2

this answerをお読みください。

ところでより多くの神託ソリューションは、このことがあります

import re 
    import psutil 

    convicted = re.compile(r'student|daemon') 

    for p in psutil.process_iter(): 
     if convicted.search(p.name): 
      p.terminate() 

編集:私はp.terminate()にラインp.kill()を変更し、より正確です。 bashの一般的なkillは、実際にはp.terminate()と同じです(TERM信号を送信します)。しかし、p.kill()は、bashのkill -9に対応しています(KILL信号を送信します)。

関連する問題