Schrift
[thread]6980[/thread]

doppelten programmstart verhindern (Seite 2)



<< |< 1 2 3 >| >> 23 Einträge, 3 Seiten
snarf
 2005-05-11 16:12
#54749 #54749
User since
2003-08-14
77 Artikel
BenutzerIn
[default_avatar]
[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-->
Crian
 2005-05-11 20:03
#54750 #54750
User since
2003-08-04
5873 Artikel
ModeratorIn
[Homepage]
user image
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
ptk
 2005-05-11 22:51
#54751 #54751
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
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.
esskar
 2005-05-11 23:42
#54752 #54752
User since
2003-08-04
7321 Artikel
ModeratorIn

user image
[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: CPAN:Use Win32 mutex objects from Perl
Froschpopo
 2005-05-12 03:39
#54753 #54753
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
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.
snarf
 2005-05-12 12:39
#54754 #54754
User since
2003-08-14
77 Artikel
BenutzerIn
[default_avatar]
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!
ptk
 2005-05-12 12:48
#54755 #54755
User since
2003-11-28
3645 Artikel
ModeratorIn
[default_avatar]
Nimm doch einfach den gleichen Pfad fuer die Datei, z.B. C:\meinlockfile oder wo man das sonst unter Windows machen wuerde.
zipster
 2005-05-12 12:49
#54756 #54756
User since
2004-09-06
458 Artikel
BenutzerIn
[default_avatar]
[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...
snarf
 2005-05-12 12:52
#54757 #54757
User since
2003-08-14
77 Artikel
BenutzerIn
[default_avatar]
... au ja, jetzt modeln wir diesen Thread zu einem philosophischen Gedankenaustausch um ... fein, fein :) :)
Froschpopo
 2005-05-12 12:59
#54758 #54758
User since
2003-08-15
2653 Artikel
BenutzerIn
[default_avatar]
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
<< |< 1 2 3 >| >> 23 Einträge, 3 Seiten



View all threads created 2005-05-11 11:06.