Eu estava brincando com a criação e a eliminação de grupos de processos no linux (ubuntu)
Eu estou tentando matar um grupo de processos e estou sendo enlouquecido pelo fato de que pkill -P $ ID funciona enquanto mata - - $ ID não. Em situações diferentes, esse script mata - - $ ID funciona como esperado e mata o processo e o subprocesso, mas nessa situação ele relata o processo não encontrado enquanto pkill -P mata o grupo como esperado.
Por que o pkill está funcionando e não mata?
file="${@:1:1}"
params="${@:2}"
echo $file
echo $params
while true ; do
echo +Master $BASHPID
(
echo ++Slave $BASHPID
running=''
stat=''
while true; do
echo RUNNING $running
echo +++Cycle $BASHPID
sleep 1
new_stat="'stat --printf='%Y' "$file"'"
! [ "$stat" = "$new_stat" ] && {
# HERE IS MY ISSUE I DO NOT UNDERSTAND WHY kill -- -"$running" reports process not found . Especially when doing ps f clearly shows both the proper hierarchy and that the PID is as expected .
kill -0 "$running" && pkill -TERM -P "$running"
stat="$new_stat"
echo CHANGE
( /bin/bash "$file" ${params[@]} ) &
running=$!
}
done &
wait
echo Slave/Cycle clear
) &
wait
done
trap "-" EXIT
#stat="'ls'"
executando o arquivo
#!/bin/bash
echo ++++sub $BASHPID
(
while true; do
echo +++++tick $BASHPID
sleep 5
done
) &
wait
echo SUB/tick clear
Tags process kill shell process-groups