REAPERを終了させてもタスクに残るreaper_host32.exeを自動で終了する

皆さん御機嫌よう。まいまいです。

備忘録的記事です。


何が起きていたのか

REAPERで作業し、REAPERを閉じたあとで、関連プロセスのreaper_host32.exeがキルされずに残り、結構な割合のCPUを使い続けていた。

これまでの解決法(案)

https://ytpmv.info/Kill-reaperhost32exe/

以前の記事で書いたreaperhost32.exeをキルするスクリプト。プロセスが居残っている時にこれを手動で実行しキルしていた。しかしやり忘れたり確認していなかったりで長時間CPUを使い続ける状態になることが多かった。

今回考えた解決法

上の記事にあるスクリプトを改良し、REAPERが起動されていない時にreaper_host32.exeが存在する時にreaper_host32.exeをキルするスクリプトを、タスクスケジューラで定期実行。

import psutil

def main():
    reaperhost32 = reaper = 0
    for proc in psutil.process_iter(['pid', 'name']):
        if "reaper_host32" in str(proc.info["name"]): 
            reaperhost32 = 1
            p = psutil.Process(proc.info["pid"])
        if "reaper.exe" in str(proc.info["name"]):
            reaper = 1
    if reaperhost32 == 1 and reaper != 1:
        p.kill()

if __name__ == "__main__":
    main()

ちゃんと問題が起こらないか見て確認してから実行すること。損害が起きても責任は負いませんので。

コメントする?

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です