Wie vermeide ich mehrere Instanzen eines Programms?

Ich muss einen richtigen Weg finden, um zu verhindern, dass zwei Instanzen meines (Python-) Programms ausgeführt werden. Ich verwende derzeit die folgende Methode.

Unter Windows

os.popen('wmic process get caption,processid | findstr `programname.exe`')

Unter Linux

os.popen('ps x | grep `programname`')

Es scheint vorerst gut zu funktionieren. Ist diese Methode korrekt? Kann mir jemand einen besseren Weg vorschlagen?

bearbeiten: Vielen Dank für die Antwort Jungs, ist etwas falsch mit den oben genannten Methoden? Ich habe versucht, die PID-Datei Weg für Linux. Was ist, wenn die PID-Datei irgendwie gelöscht wird?

Antworten auf die Frage(3)

Ihre Antwort auf die Frage