首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >进程退出时未传递SIGCHLD

进程退出时未传递SIGCHLD
EN

Stack Overflow用户
提问于 2016-05-31 18:07:27
回答 1查看 890关注 0票数 3

我需要检测我的后台进程何时退出。因此,我安装了一个陷阱。run_guirun_ai1是简单的exec函数。

代码语言:javascript
运行
复制
run_gui & gui_pid=$!
run_ai1 & ai1_pid=$!
trap 'echo foo' SIGCHLD
while true; do
    echo "Started the loop"
    while true; do
        read -u $ai1_outfd line || echo "Nothing read"
        if [[ $line ]]; then
            : # Handle this
        fi
    done
    while true; do
        read -u $gui_outfd line || echo "nothing read"
        if [[ $line ]]; then
            : # Handle this
        fi
    done
done

当我关闭GUI时,什么都不会发生。只有当我按ctrl+c时,才会执行ctrl+c命令。

为什么我错过了SIGCHLD

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-31 18:36:20

默认情况下,非交互式shell不启用作业控制。查看在脚本开头放置“set -o监视器”是否会产生您想要的结果。

资料来源:切特·雷米,GNU Bash的维护者

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37552755

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档