On Sat, Jun 28, 2003 at 08:07:57PM +0200, Jan Trippler wrote:
Ich habe prinzipiell Bauchschmerzen bei bash-Scripts, die mit while true; do done
arbeiten. Sowas sollte man immer zumindest über einen crontab-Job überwachen lassen (man kriegt es selten so abgedichtet, dass es _nie_ abstürzen kann und dann sollte die Möglichkeit eines Wiederanlaufs da sein).
Das kommt darauf an, was man erreichen will. Ein Crontab-Eintrag hat die Chance auf multiple parallele Instanzen desselben Scriptes, wenn die Laufzeit des Scriptes durch was auch immer laenger wird als das Intervall, in dem Cron die Scripte startet. Wenn Du also minütlich Dein Script hochziehst, es aber durch einen hängenden NFS-Server im $PATH länger als eine Minute stehen bleibt, dann stapeln sich die Scripte übereinander. Hier ist es wichtig, daß die Scripte idempotent und reentrant sind. Ein while : do done kann niemals konkurrierende Instanzen haben, sondern es prodziert immer nicht überlappende Iterationen. Den Wiederanlauf regelt man leicht damit, daß man das Script mit einem "respawn"-Eintrag in die /etc/inittab setzt, denn dafür ist init genau da: kk:235:respawn:/root/bin/meiniterator.sh mit drei parametern und dann ein telinit q. Kristian