Pythonで外部プロセスを一時停止する

Pythonで外部プロセスを一時停止する要件できたのでメモ
メモリ解析ツールとかでお世話になるのでスクリプトから使えたら便利かなって…
ダメだったけどwatchdogでファイル監視しつつ変更検知したら消される前に横取りするスクリプトで使えないかなーと思って書いてた
環境はWindows10 Python3です

使うのはpsutilで以下のレポジトリ参照です
https://github.com/giampaolo/psutil

pipで入るので入れます

1$ pip install psutil

READMEに全部書いてあるので読んだ方が早いですが停止と再開のサンプルはこんな感じ
プロセスIDが1234で3秒間停止させてみる

1import time
2
3import psutil
4
5pid = 1234
6p = psutil.Process(pid)
7p.suspend()
8time.sleep(3)
9p.resume()

これだと不便なので特定のプロセスを3秒だけ止める(ペイント)

 1import time
 2
 3import psutil
 4
 5pid = None
 6for proc in psutil.process_iter(attrs=["pid", "name"]):
 7    if proc.info["name"]  == "mspaint.exe":
 8        pid = proc.info["pid"]
 9
10if not pid:
11    exit(1)
12
13p = psutil.Process(pid)
14p.suspend()
15time.sleep(3)
16p.resume()