pax*_*blo
15
至少在Linux下,信号处理程序本身是继承的,但不是挂起的信号.
引用Linux fork(2) 手册页:
fork()创建一个子进程,该进程仅在其PID和PPID中与父进程不同,并且资源利用率设置为0.事实上,不继承文件锁和挂起信号.
这是有道理的,因为信号属于(父)过程.新创建的进程(大部分)是当前进程的副本,因此保留了信号处理程序.
虽然没有直接相关,但是exec()经常跟随a 的-type调用fork() 将破坏所有信号处理程序,因为正在将全新的可执行文件加载到进程中(覆盖当前正在处理信号的函数).