为什么子壳无法从父壳捕捉信号?

  • 本文关键字:信号 bash shell
  • 更新时间 :
  • 英文 :


我有2个shell脚本:

# subshell.sh
trap "echo Caught SIGTERM" 15
echo $$
sleep 100000
# parent.sh
setsid sh subshell.sh &
pid=$!
echo "sid=$pid"
sleep 2
# This won't work!
kill -15 -$pid

主要目的是将Sigterm送往子壳及其所有孩子。在谷歌搜索一段时间后(存在一个棘手的问题处理信号),我选择setsid创建一个新的会话并发送使用的信号-pid。但是,尽管pid是正确的,但不会打印该消息。如果我手动执行kill -15 -$pid,则可以工作。那么如何将信号发送到子壳?

终于,我设法通过创建另一个子壳来完成此工作,然后在该子壳中调用kill -15 -$pid。仍然不知道为什么父壳不能这样做

相关内容

  • 没有找到相关文章

最新更新