pythonからプロセスを取得及びプロセスの削除をする方法を紹介します。
プロセス取得
pythonの「psutil」という標準ライブラリを使います。
プロセス一覧をdict型変数に格納するコードを書きます。
import psutil
dict_pids = {
p.info["pid"]: p.info["name"]
for p in psutil.process_iter(attrs=["pid", "name"])
}
psutil.process_iter(attrs=[“pid”, “name”])でプロセス一覧のイテレーションを取得できます。
後は一つずつdict_pidsに突っ込みます。
プロセス削除
プロセスを削除するためには、PIDがわかっている必要があります。
PIDがわかっているという前提で下記のように書けばプロセスを削除できます。
import psutil
p = psutil.Process(pid)
p.terminate() #or p.kill()
psutil.Process(pid)で所望のプロセスを指定し、terminate()またはkill()でプロセスを削除できます。
どんなとき使うの?
私は、
pythonから別のアプリを立ち上げ、そのアプリがフリーズしてしまうとき
にアプリを強制終了させるために使いました。
pythonラッパーが用意されているような別アプリを立ち上げ、色々な使い方をしていたところ、稀にフリーズしてしまうという現象に直面し、泣く泣くリブート処理を追加した次第です。。。
まとめ
pythonからプロセスの一覧取得・削除する方法を紹介しました。
あまり使う機会がないと思いますが、誰かの参考になれば幸いです。
以上!
コメント