Hallo,
ich bräuchte eine Wrapper der bei einem Programaufruf prüft, das das Programm mit den gleichen Parametern schon gestartet wurde und noch läuft. Es ist rsync. Manchmal sterben die rsync ab (Webserver und viele Bilder) und nach 60min (crontab) startet der nächste. Das kann sich schön hochschaukeln, so dass eine gut Handvoll tote und frische Rsyncs sich gegenseitug behindern und die Load auf dem Rechner ins astronomische geht. Irgendwie will ich das abfangen.
reicht ein einfaches:
if `ps ax | grep 'meine Kommandozeile'` dann tu nix
oder sollte man noch einiges beachten? Eventuell will ich auch den vorhergehende Langläufer killen und es frisch versuchen.
Mit freundlichen Grüßen
Jens Puruckherr
Jens Puruckherr jpuruckherr@cyberport.de (Di 14 Mär 2006 14:31:45 CET):
Es ist rsync. Manchmal sterben die rsync ab (Webserver und viele Bilder) und nach 60min (crontab) startet der nächste. Das kann sich schön hochschaukeln, so dass eine gut Handvoll tote und frische Rsyncs sich gegenseitug behindern und die Load auf dem Rechner ins astronomische geht. Irgendwie will ich das abfangen.
reicht ein einfaches:
if `ps ax | grep 'meine Kommandozeile'` dann tu nix
PIDFILE=/var/run/rsync/pid if kill -0 `cat $PIDFILE`; then echo "Still running." else echo "Starting...." rsync ... & echo $! >$PIDFILE fi
Natürlich kann man's noch verschönern :)
Heiko
Linux-User-Group Dresden lug-dd@mailman.schlittermann.de writes:
if `ps ax | grep 'meine Kommandozeile'` dann tu nix
PIDFILE=/var/run/rsync/pid if kill -0 `cat $PIDFILE`; then echo "Still running." else echo "Starting...." rsync ... & echo $! >$PIDFILE fi Natürlich kann man's noch verschönern :)
Wie bekomme ich den im Hintergrund laufenden rsync nun dazu, seine PID zu löschen, wenn fertig?
wwwtest scripts # sh rsyncwrapper_content.sh rsyncwrapper_content.sh: line 2: kill: (19755) - Kein passender Prozess gefunden Starting....
Kann ein anderer Prozess u.U. die Id des vorher gelaufenen rsync bekommen und ich warte somit u.U ewig auf dessen Beendung?
Mit freundlichen Grüßen
Jens Puruckherr
On Tue, Mar 14, 2006 at 02:31:45PM +0100, Jens Puruckherr wrote:
Hallo,
ich bräuchte eine Wrapper der bei einem Programaufruf prüft, das das Programm mit den gleichen Parametern schon gestartet wurde und noch läuft.
Vielleicht hilft dir das Programm "start-stop-daemon" (debian/ubuntu). Ich glaube laut LSB heißt es start_daemon.
Es verhält sich letztlich ähnlich wie das Script von Heiko.
Gruß, Thomas
lug-dd@mailman.schlittermann.de