今天碰到一个问题,把一个正在运行的脚本取消,可是该脚本在后台起来的线程仍然在运行。
简单测试了一下
#!/bin/bash echo "Begin Test ..." (sleep 100)& (sleep 100)& (sleep 100)& wait echo "End Test ..."
在脚本还在等待返回的时候ctrl +c停止脚本,发现后台的sleep不受影响。
目前打算先获取主进程的进程号pid,这些后台进程的父进程号就是该pid,通过该pid获取后台进程的线程号,从而杀死这些后台线程。