ich habe ein Skript mit kleiner tkinter Oberfläche, zur Unterstützung einiger Arbeiten. Gerne wird es von den Kollegen mal irgendwo hin verschoben oder minimiert, also übersehen und eine zweite Instanz geöffnet. Danach ist die Verwirrung groß...
Wie kann ich sowas verhindern, also dass eine zweite Instanz geöffnet wird?
Meine bisherige Idee war es die laufenden Prozeesse über psutil abzufragen:
Code: Alles auswählen
def check_existing_instance(instance):
import psutil
from datetime import datetime, timedelta
check_time = datetime.now() - timedelta(seconds = 10)
stamped = check_time.timestamp()
for p in psutil.process_iter():
if "python" in p.name():
if instance in p.cmdline()[1] and stamped > p.create_time():
return p
return None
Fühlt sich eher wie eine Krücke an

Kann ich beispielsweise abfragen, wie die ID des aufrufenden Prozess ist, sodass ich das besser filtern kann, als über die Zeit? Oder gibt es generell einen klügeren Ansatz?
Grüße Tobias