Ich poste dies als Antwort, da ich ein neuer Benutzer bin und Stack Overflow mich noch nicht abstimmen lässt.
Die Lösung von Sorin Sbarnea funktioniert für mich unter OS X, Linux und Windows, und ich bin dafür dankbar.
Tempfile.gettempdir () verhält sich jedoch unter OS X und Windows auf die eine und unter anderen unter einigen / vielen / allen (?) * Nixen (ohne Berücksichtigung der Tatsache, dass OS X auch Unix ist!). Der Unterschied ist für diesen Code wichtig.
OS X und Windows verfügen über benutzerspezifische temporäre Verzeichnisse, sodass eine von einem Benutzer erstellte temporäre Datei für einen anderen Benutzer nicht sichtbar ist. Im Gegensatz dazu ist unter vielen Versionen von * nix (ich habe Ubuntu 9, RHEL 5, OpenSolaris 2008 und FreeBSD 8 getestet) das temporäre Verzeichnis / tmp für alle Benutzer.
Das heißt, wenn die Sperrdatei auf einem Mehrbenutzercomputer erstellt wird, wird sie in / tmp erstellt, und nur der Benutzer, der die Sperrdatei zum ersten Mal erstellt, kann die Anwendung ausführen.
Eine mögliche Lösung besteht darin, den aktuellen Benutzernamen in den Namen der Sperrdatei einzubetten.
Es ist erwähnenswert, dass sich die OP-Lösung zum Abrufen eines Ports auch auf einem Mehrbenutzercomputer schlecht verhält.