
Linux(Ubuntu)でプロセスグループを作成して終了しようとしています。
プロセスグループを終了しようとしていますが、pkill -P $ IDは機能しますが、Kill -- - $ IDは機能しないという事実のために狂っているようです。それ以外の場合、このスクリプトKill --- $ IDは期待どおりに機能し、プロセスと子プロセスを終了しますが、この場合はプロセスが見つからないと報告しますが、pkill -Pは期待通りにグループを終了します。
pkillは機能しますが、killは機能しない理由
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`"
ファイルの実行
#!/bin/bash
echo ++++sub $BASHPID
(
while true; do
echo +++++tick $BASHPID
sleep 5
done
) &
wait
echo SUB/tick clear