[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Beenden von rsync



Hallo,

Andre Tann <atann@alphasrv.net>:


>	#!/bin/bash
>	rsync ... /quelle /ziel
>
>	# ./skript &
>	[1] 421

>dann bleibt rsync am laufen, selbst wenn mann das Skript mit kill 421 beendet.

>Woran liegt das? Wieso führt das Killen eines Elternprozesses nicht dazu,
>dass alle Kind-Prozesse, also alle rsync-Prozesse, verschwinden?

Das liegt daran, dass die Bash das Signal (in diesem Fall TERM) nicht an die
aufgerufenen Prozesse weiter leitet. Mit rsync hat das nichts zu tun.

>Und wie könnte man alle rsync-Prozesse killen, die zu dem Skript gehören?

Indem man am Anfang des Skriptes folgende Shell-Option setzt:

  shopt -s huponexit

dann sendet die Bash ein HUP Signal an alle ihre direkten Kind-Prozesse,
wenn sie terminiert. HUP ist zwar nicht das gleiche wie TERM (kill) oder
INT (Ctrl-C), führt aber normalerweise auch zum Beenden des Prozesses.

Gruß, Harald


Reply to: