Uma maneira melhor de fazer isso (que evita matar o mesmo PID para um processo diferente) é:
function kill_gracefully() {
pid=$1; [[ -z $pid ]] && return; # check arg
kill $pid; # kill once
i=0;
while kill -0 $pid; do # while pid is alive
sleep 0.1;
((i+=1)); # count ++
if [[ $i -gt 10 ]];then # wait for 10 secs at most
kill -9 $pid; # kill if timeout
break;
fi;
done;
}
O método acima pode falhar em um sistema carregado pesado (que se bifurca freqüentemente)