c Programm für weitere Instanzen sperren?

PowerCheat

Erfahrenes Mitglied
Schönen Sonntag wünsche ich.

Ich sitze gerade hier und entwickle einen Daemon für ein Spiel.

Nun habe ich das Problem, das ich manchmal unachtsam bin...

Starte das Programm 2 mal und das Spiel ist kaputt.
Wie kann ich es hin bekommen das ich das Programm nur einmal ausführen kann?

Und wenn ich es erneut probiere eine fehlermedlung bekomme?

Gruß
Josef
 
Hi!

Die einfachste Lösung ist ein Lockfile: Du prüfst beim Programmstart auf die Existenz einer bestimmten Datei (z.B. /tmp/programmname.lck) und gibst eine Fehlermeldung aus, wenn Sie existiert. Andernfalls erstellst Du die Datei. Vor dem Beenden muss sie natürlich gelöscht werden.
Was Du in die Datei schreibst ist irrelevant. Oftmals verwenden Programme allerdings kein Lockfile, sondern ein Pidfile - das ist nichts anderes als eine Datei in der die Prozeß-ID abgelegt wird. So z.B. beim Apache zu finden und z.B. sinnvoll bei Anwendungen, die fork() aufrufen und/oder bei Daemons, die in init-Skripten auf einfachste Weise die Prozeß-ID ermitteln.

Gruß
Enum
 
Danke!

Auf die einfachsten gedanken kommt man meistens nicht.

Habe ja eine PID file....

Noch mal danke für den Gedanken anstoß.
 
Zurück