Publikuję to jako odpowiedź, ponieważ jestem nowym użytkownikiem, a Stack Overflow nie pozwala mi jeszcze głosować.
Rozwiązanie Sorin Sbarnea działa dla mnie pod OS X, Linux i Windows i jestem za to wdzięczny.
Jednak tempfile.gettempdir () zachowuje się w jeden sposób pod OS X i Windows, a w inny pod niektórymi / many / all (?) * Nixami (ignorując fakt, że OS X jest również Uniksem!). Różnica jest ważna w tym kodzie.
Systemy OS X i Windows mają katalogi tymczasowe specyficzne dla użytkownika, więc plik tymczasowy utworzony przez jednego użytkownika nie jest widoczny dla innego użytkownika. Z kolei w wielu wersjach * nix (testowałem Ubuntu 9, RHEL 5, OpenSolaris 2008 i FreeBSD 8), katalog tymczasowy to / tmp dla wszystkich użytkowników.
Oznacza to, że gdy plik blokujący jest tworzony na komputerze z wieloma użytkownikami, jest tworzony w / tmp i tylko użytkownik, który utworzył plik blokujący po raz pierwszy, będzie mógł uruchomić aplikację.
Możliwym rozwiązaniem jest osadzenie aktualnej nazwy użytkownika w nazwie pliku blokady.
Warto zauważyć, że rozwiązanie OP polegające na przechwytywaniu portu będzie również źle działać na maszynie wielodostępnej.