linux sighup 信号
2016-04-19 15:19
239 查看
在读UNIX网络编程卷一 13.4 守护进程编写时, 书中写到,这里必须忽略SIGHUP信号,因为会话头进程(及首次fork产生的子进程,通过setsid 成为会话头进程)终止后,会向其会话中所有进程(及再次fork产生的子进程)发送SIGHUP信号。
在这里有个疑问,SIGHUP信号在第一个父进程退出时,不会发送吗? SIGHUP信号到底什么情况下会产生?
翻阅资料得到答案:
1、终端关闭时,该信号被发送到session首进程以及作为job提交的进程(即用 & 符号提交的进程)
2、session首进程退出时,该信号被发送到该session中的前台进程组中的每一个进程
3、若父进程退出导致进程组成为孤儿进程组,且该进程组中有进程处于停止状态(收到SIGSTOP或SIGTSTP信号),该信号会被发送到该进程组中的每一个进程。
书中所描述的是第二种情况,即 session 首进程退出。
那个 第一个父进程退出,是什么情况呢?
1. 不是第一种情况, 因为不是终端关闭, 不是第三种情况,因为父进程退出,进程组只有一个运行的子进程。
2. 父进程会是session首进程吗? 答案是,不是,因为我们运行该程序,一般是在shell中,通过命令进行,这时,shell 将是会话首进程。
一般来说,控制进程将成为会话首长进程,这里的控制进程是指获取控制终端的进程。
在这里有个疑问,SIGHUP信号在第一个父进程退出时,不会发送吗? SIGHUP信号到底什么情况下会产生?
翻阅资料得到答案:
1、终端关闭时,该信号被发送到session首进程以及作为job提交的进程(即用 & 符号提交的进程)
2、session首进程退出时,该信号被发送到该session中的前台进程组中的每一个进程
3、若父进程退出导致进程组成为孤儿进程组,且该进程组中有进程处于停止状态(收到SIGSTOP或SIGTSTP信号),该信号会被发送到该进程组中的每一个进程。
书中所描述的是第二种情况,即 session 首进程退出。
那个 第一个父进程退出,是什么情况呢?
1. 不是第一种情况, 因为不是终端关闭, 不是第三种情况,因为父进程退出,进程组只有一个运行的子进程。
2. 父进程会是session首进程吗? 答案是,不是,因为我们运行该程序,一般是在shell中,通过命令进行,这时,shell 将是会话首进程。
一般来说,控制进程将成为会话首长进程,这里的控制进程是指获取控制终端的进程。
相关文章推荐
- Linux命令--gzip,bzip2,tar,zip命令使用方法详解
- linux ping
- JAVA 获取linux系统磁盘使用率
- Golang在windows下交叉编译linux程序
- 《Linux内核分析》期终总结&《Linux及安全》期中总结
- Linux Proc文件系统实验(代码)
- Linux内核分析-期中总结
- Linux之线程:控制与分离
- Linux设置自启动
- linux 终端 常用命令及快捷键
- linux、windows 查看环境变量
- Linux内核源码中使用宏定义的若干技巧
- Htop – Linux进程监控工具
- linux 中文包安装 和 解决终端乱码问题
- linux设备模型
- linux 启动配置文件
- centos6.7安装系统后看不到网卡无法配置IP的解决办法
- centos6.7安装系统后看不到网卡无法配置IP的解决办法
- Linux SendMail发送邮件失败诊断案例(三)
- 【Linux学习笔记十五】磁盘分区和格式化