我将你的脚本稍作修改如下:
#!/bin/sh
ps
echo "currentid:$$"
echo "pid:$PPID"
{
echo "pid:$PPID"
sleep 3
kill -9 -- -$PPID
}&
sleep 5
echo "uuuuuuuuuuuuuu"
结果打印:
"image.png" (https://wmprod.oss-cn-shanghai.aliyuncs.com/c/user/20241012/ca5a9cddc3c5dc629cd7e69a824ec96f.png)
其中ps部分打印:1431972和145170对应:
1431972 root 1200 S -ash
1451970 root 1192 S /bin/sh ./test.sh
kill掉的进程是"-ash",-ash 表示一个正在运行的交互式 shell, kill -9 -- -$PPID 的操作将会终止该子 shell
及其所有子进程。