Morgen !
Ich hab ein Skript, dass via crontab alle 30 Minuten ausgeführt werden soll.
Normale Laufzeit des Skripts liegt bei etwa 5 Sekunden. Da in dem Skript
allerdings via GET etwas von einem anderen Server geholt wird kann es sein,
dass das Skript länger läuft bzw sich sogar weghängt.
Deshalb würd ich gern bei jedem Start prüfen ob das "alte" Skript noch läuft
oder bereits beendet wurde.
Wie kann ich dieses am besten machen ? In meinem Testszenario hab ich ein
Skript mit einer Endlosschleife - doch weder ps -ef noch -ax zeigt mir das Skript
an.
Jemand ne lösung ? bin nich so in unix/linux bewandert
btw. Alternative wäre mit einer "locked"-Datei. Allerdings bräuchte ich dann
trotzdem die PID (o.ä.) um das "alte" Skript zu killen...
Läuft das Skript noch ?
-
-
habs jetzt anders gelöst....
ich erstell beim start ne lock-datei und schreib dort die pid rein.
beim beenden lösch ich die datei wieder. so kann der neue lauf
dann auf die file prüfen und den prozess killen... -
Am sinnvollsten währe wohl rauszufinden, wieso das Script sich aufhängt und es zu verhindern oder nicht? Was ist das denn für ein Script?
-
das skript läuft auf dem webserver und holt sich vom applikation-server aus einer session
die aktuelle index-seite. der applikationserver, bzw die instanzen können aber im laufenden
betrieb mal hängen oder beschäftigt sein - deshalb bekommt das get keine rückmeldung.
(so stands jedenfalls in meinem arbeitsauftrag *g)is alles weng kompliziert, und größtenteils auch nicht von mir erstellt. ich soll bloß
praktisch den fehlerfall abfangen und des ganze dann in die crontab hängen. als ich
dann gesehen hab, dass der autor bereits eine lock-datei erstellt... war die lösung
dann recht naheliegendbtw. shell-skript auf sles9