有没有办法捕获发送到进程组的信号,以便任何子进程都不会受到信号的影响?
我的问题是我有一个应用程序在SIGTERM上很好地终止但在SIGUSR1上打破了干净,所以我想保护它不受SIGUSR1的影响.我想过编写一个简单的bash脚本:
#!/bin/bash
runapp &
childspid=$!
trap "kill -TERM $childspid ; exit" USR1
while true ; do
sleep 10 ;
done
Run Code Online (Sandbox Code Playgroud)
不幸的是,凶手很狡猾并且将SIGUSR1发送给整个流程组而不仅仅是领导者.
非常感谢,