Não há diferença entre kill -9 -$PPID e kill -9 -- -$PPID .
Existe uma diferença entre kill -$PPID e kill -- -$PPID . O -- marca o final dos argumentos da opção: qualquer argumento após -- , mesmo que comece com - , não será tratado como uma opção. Sem o -- , o -$PPID será tratado como o sinal a ser enviado.
IMHO SIGKILL é muito strong. Comece com SIGINT ou SIGHUP, ou o padrão, SIGTERM.