User since
2003-08-14
77
Artikel
BenutzerIn
[quote=zipster,11.05.2005, 14:01][quote=ptk,11.05.2005, 13:10]Ich wuerde ein Lockfile verwenden. Das ist wenigstens atomar.[/quote]
Kann aber bei einem harten Programmende auch dazu führen das das Programm danach nicht mehr startbar ist.[/quote]
... richtig angewendet kaum!
Initphase:
- Lockfile suchen (content: PID)
- Lockfile existiert, dann PID suchen
- PID existiert und Process name == eigener => schon gestartet, Abbruch
- PID existiert NICHT => überbleibsel von letzten Crash, mit eigener PID überschreiben
- Lockfile existiert nicht
- PID ins Lockfile schreiben
END-Block
- Lockfile löschen
Außer bei einem echten Crash sollte das eigentlich reichen ...\n\n
<!--EDIT|snarf|1115813616-->
User since
2003-08-04
5873
Artikel
ModeratorIn
Vielleicht sollte man noch einen lock auf das Logfile ausführen und einen solcvhen beachten, falls gleichzeitig zwei Prozesse starten und das Überbleibsel eines dritten mit der eigenen ID überschreiben wollen.
s--Pevna-;s.([a-z]).chr((ord($1)-84)%26+97).gee; s^([A-Z])^chr((ord($1)-52)%26+65)^gee;print;
use strict; use warnings; Link zu meiner Perlseite
User since
2003-11-28
3645
Artikel
ModeratorIn
Wenn das Locking per flock gemacht wird, dann wird der Lock automatisch aufgehoben, wenn das Programm stirbt (jedenfalls bei Unix). Ob die Lockdatei existiert oder nicht, ist das irrelevant.
User since
2003-08-04
7321
Artikel
ModeratorIn
[quote=ptk,11.05.2005, 20:51]Wenn das Locking per flock gemacht wird, dann wird der Lock automatisch aufgehoben, wenn das Programm stirbt (jedenfalls bei Unix). Ob die Lockdatei existiert oder nicht, ist das irrelevant.[/quote]
auch unter windows!
ansonsten eine reine Windowslösung:
Use Win32 mutex objects from Perl
User since
2003-08-15
2653
Artikel
BenutzerIn
das mit der File kann man aber umgehen indem man das zweite Programm in ein anderes verzeichnis kopiert und von dort aus startet. Dann müsste ich ja immer erst die gesamte festplatte nach dieser File durchsuchen, das wäre ja alles andere als performant.
User since
2003-08-14
77
Artikel
BenutzerIn
Du solltest natürlich das Lockfile schon an eine dedizierte Stelle im System ablegen und nicht gerade innerhalb des Inst-Verzeichnisses ... !
Und auch hier wird es immer jemanden geben, der diesen Mechanismus mit einem mitleidigen Lächeln außer Kraft setzt ... that's life!
User since
2003-11-28
3645
Artikel
ModeratorIn
Nimm doch einfach den gleichen Pfad fuer die Datei, z.B. C:\meinlockfile oder wo man das sonst unter Windows machen wuerde.
User since
2004-09-06
458
Artikel
BenutzerIn
[quote=snarf,12.05.2005, 10:39]Und auch hier wird es immer jemanden geben, der diesen Mechanismus mit einem mitleidigen Lächeln außer Kraft setzt ... that's life![/quote]
Richtig. Alles was von einem Menschen aufgebaut wird kann von einem anderen auch zerstört werden...
User since
2003-08-14
77
Artikel
BenutzerIn
... au ja, jetzt modeln wir diesen Thread zu einem philosophischen Gedankenaustausch um ... fein, fein :) :)
User since
2003-08-15
2653
Artikel
BenutzerIn
wenn ich so denke dann brauch ich ja erst garnicht anfangen perl zu lernen ... bald is das leben ja eh schonwieder vorbei, dann is Sense... bei dem gedanke wird mir bewusst dass ich es theoretisch nichtmal mehr lohnt noch den Abwasch zu machen, wenn ich tot bin isses mir nämlich egal wieviele ungespühlte teller rumliegen. Ist alles relativ