私のPythonスクリプトでは、otherscript.py
が現在(Linux)システム上で実行されているかどうかをチェックしたいと思います。 psutilライブラリは、良い解決策のように見えた:Pythonのコマンドでプロセスを見つける
import psutil
proc_iter = psutil.process_iter(attrs=["name"])
other_script_running = any("otherscript.py" in p.info["name"] for p in proc_iter)
問題はp.info["name"]
が唯一のプロセスではなく、完全なコマンドの実行可能ファイルの名前を与えることです。したがって、システム上でpython otherscript.py
が実行された場合、p.info["name"]
はそのプロセスではpython
になります。otherscript.py
が実行されているスクリプトであるかどうかをスクリプトは検出できません。
psutilなどのライブラリを使って簡単にチェックできますか?私はサブプロセスとしてps
コマンドを実行して、出力にotherscript.py
を探すことができますが、もっとエレガントなソリューションがあればそれを好むでしょう。