From 92f6db4439710a7441924efd76b3fa70755198e0 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Beno=C3=AEt=20S=C3=89RIE?= Date: Mon, 5 Aug 2013 17:46:18 +0200 Subject: [PATCH] Fix a bug in the way of killing evobackup. The process is launched by "run-parts /etc/cron.daily". When you kill the process, run-parts is not informed and the process go in Z state (and rsync continue to work!). When another run-parts is launched the part wich kill a process if already launched fail. This fix this particular bug. --- zzz_evobackup | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/zzz_evobackup b/zzz_evobackup index 0aac80e..887ddbb 100644 --- a/zzz_evobackup +++ b/zzz_evobackup @@ -8,7 +8,12 @@ # Verification qu'un autre evobackup n'est pas deja lance PIDFILE=/var/run/evobackup.pid if [ -e $PIDFILE ]; then - pkill -9 -F $PIDFILE + # Killing the childs of evobackup. + for pid in $(ps h --ppid $(cat $PIDFILE) -o pid | tr -s '\n' ' '); do + kill -9 $pid; + done + # Then kill the main PID. + kill -9 $(cat $PIDFILE) echo "$0 tourne encore (PID `cat $PIDFILE`). Processus killé" >&2 fi echo "$$" > $PIDFILE