Eu fiz uma pequena pesquisa e acho que pouca explicação ajudará os outros.
Então, como @Schives respondeu , com o PPID poderemos encerrar o processo todo filho e pai .
Mas como obter o PPID
facilmente?
ps -o pid,ppid,sess,cmd -U webmon
ou
root@87-109:~$ ps -o pid,ppid,sess,cmd -U webmon | grep 'website_status.sh\|PID'
PID PPID SESS CMD
16848 16787 16787 sh website_status.sh
17667 4405 4405 grep --color=auto website_status.sh\|PID
root@87-109:~$
então, pkill -15 -P 16787
onde webmon é o usuário que está executando o processo.
Eu me deparei com outras maneiras de matar o processo pai e filho em um blog , estou colando-os aqui.
Isso requer PID,PPID,PGID,GID
e como obtê-los?
ps -o pid,ppid,pgid,gid,sess,cmd -U username
1. matar um grupo de processos com PID negativo (ID do processo)
kill -TERM -PID
É para matar o PID e todos os seus processos filhos.
2. matar um grupo de processos com o seu PGID (Process Group ID)
kill -- -$PGID Kill using the default signal (TERM = 15)
kill -9 -$PGID Kill using the KILL signal (9)
3. matar um grupo de processos com apenas informações PID
kill -- -$(ps -o pgid= $PID | grep -o [0-9]*)
Na verdade, você pode perceber que é apenas o caminho do # 2
4. Usando pkill, mate processos por PGID (Proess Group ID)
pkill -9 -g $PGID
5. Usando pkill, mate processos por GID (Group ID)
pkill -9 -G $GID
6. Usando o pkill, mate processos pelo PPID (Parent Process ID)
pkill -9 -p $PPID
7. Usando pkill, mate processos por terminal
pkill -9 -t $terminal
Nota: sem / dev / prefix
8. Usando pkill, mate processos por nome de processo
pkill -9 -x $process_name
9. Usando pkill, mate processos por sessão
pkill -9 -s $sess