Unix: Nur eine Instance des Programms zulassen
-
Ist es möglich unter Linux/Unix nachzuschauen, ob vielleicht das Programm schon mal ausgeführt wird?
(Sprich ich will verhindern, daß mein Server ausversehen 2 mal auf dem
Rechner gestartet wird...) unter Windows gehts ja mit der WinAPI, aber unter
Linux hab ich noch nichts gefunden...Wäre nett, wenn mir jmd. die Birne anmacht
Gruss,
Mathias
-
Eine Datei anlegen, beim Start prüfen ob sie existiert und am Ende wieder löschen.
-
DrGreenthumb schrieb:
Eine Datei anlegen, beim Start prüfen ob sie existiert und am Ende wieder löschen.
Die Datei erstellst du am besten mit man: tmpfile
-
äh, nee... du brauchst ja einen eindeutigen Dateinamen wenn du gucken willst, ob die Datei da ist oder nicht.
-
aber am besten machst du das mit File Locks (siehe man: flock(2))
-
Warum?
Und dabei noch ne andere Frage: was bringt LOCK_SH? Habe grad mal ausprobiert: Ein Prozess lockt mit LOCK_EX und der nächste, der dass versucht, wird blockiert. Macht Sinn.
Was bringt aber ein Shared-Lock? Wieso will man etwas so locken, dass andere es auch locken können?
-
Weil dann kein anderer mehr exklusiv locken kann.
Wenn du es nur liest, dann willst du anderen ja auch erlauben zu lesen, aber es soll inzwischen niemand das File verändern.
-
Warum?
weil locks bei Prozess Ende automatisch entfernt werden. Dateien nicht unbedingt
-
einleuchtend, danke