【发布时间】:2014-12-16 08:41:12
【问题描述】:
我使用以下 C 程序测试Solaris 10 上的信号行为:
#include <stdio.h>
int main(void)
{
sleep(100);
return 0;
}
在命令行中运行:
bash-3.2# ./test
然后使用psig检查test进程的信号行为:
bash-3.2# psig 11918
11918: ./test
HUP default
......
CONT default
TTIN default
TTOU default
......
所有信号配置均为default。
使用grep命令获取test的父进程:
root 11918 17894 0 15:28:41 pts/25 0:00 ./test
然后使用psig检查test进程的父进程(bash)的信号行为:
bash-3.2# psig 17894
17894: bash
......
QUIT ignored
......
TTIN ignored
TTOU ignored
......
根据我的理解,我认为bash应该调用fork生成test,根据fork,子进程应该继承信号处置。
为什么程序不继承bash 的信号配置?提前致谢!
【问题讨论】:
标签: c bash unix signals solaris