In meinem Python-Skript möchte ich überprüfen, ob otherscript.py
derzeit auf dem (Linux) -System ausgeführt wird. Die psutil Bibliothek sah aus wie eine gute Lösung:Finden Sie Prozesse per Befehl in 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)
Das Problem ist, dass p.info["name"]
nur den Namen der ausführbaren Datei eines Prozesses gibt, nicht den vollen Befehl. Wenn also python otherscript.py
auf dem System ausgeführt wird, ist p.info["name"]
nur python
für diesen Prozess, und mein Skript kann nicht erkennen, ob otherscript.py
das Skript ausgeführt wird oder nicht.
Gibt es eine einfache Möglichkeit, diese Überprüfung mit psutil oder einer anderen Bibliothek durchzuführen? Ich weiß, ich könnte den ps
Befehl als Subprozess ausführen und nach dem otherscript.py
in der Ausgabe suchen, aber ich würde eine elegantere Lösung bevorzugen, wenn eine existiert.