checken ob cronjob läuft

xrax

Erfahrenes Mitglied
Hallo zusammen,

ich habe ein JAVA-Programm welches über Cronjob periodisch gestartet wird.
Ich möchte nun vor dem nächsten start checken, ob diese Programm vielleicht noch läuft und dann nicht starten.

Wie mache ich das ?

Beste Grüße
xrax
 
Hi

zB. beim Start eine Datei (mit bestimmtem Namen) anlegen und beim Beenden wieder löschen.
Vor Anlegen beim Start dann zusätzlich prüfen ob die Datei schon existiert; ggf. das Programm beenden.

Um Programmabstürze und ähnlich Probleme zu umgehen (bei denen die Datei ja nicht wieder entfernt wird):
Die Datei nicht nur am Anfang erzeugen, sondern zB. jede Minute während Programmablauf was ändern
(zB. den aktuellen Timestamp reinschreiben (statt dem alten Inhalt), oder einfach irgendwas reinschreiben
damit das Änderungsdaum der Datei aktualisiert wird) und bei der Vorhanden-Prüfung am Anfang
nur dann das Programm beenden, wenn die Datei vorhanden und nicht älter als zB. 3 Minuten ist.


(Eine direktere Lösung wäre, die laufenden Prozesse abzufragen usw.usw.,
aber da gibts einige potenzielle Probleme damit; uA. auch wegen Java
Stabiler ist die Dateivariante)
 
(Zumindest bei WIndows kann es passieren, dass der Socket nach
Programmende noch ein paar Minuten blockiert bleibt.
Umgehbar mit SO_REUSEADDR)
 
Ich hab jetzt ein Propertie-File geschrieben in welchem ich dann auch für verschiedene Prozesse running oder complete setze.
Wird halt blöd wenn der Server mal rebootet und das teil grad auf running steht.

Besten Dank
xrax
 
Genau deswegen die zweite Hälfte vom Beitrag oben :rolleyes:

Und eine Datei für mehrere Programme ist schlecht.
Schreiben kann nur immer einer gleichzeitig.
 
Zurück