文章目录
概述
Posix.1 中与作业控制有关的信号,如下
SIGCHLD:子进程已停止或终止。
在一个进程终止或停止时,S I G C H L D信号被送给其父进程。按系统默认,将忽略此信号。如果父进程希望了解其子进程的这种状态改变,则应捕捉此信号。信号捕捉函数中通常要调用w a i t函数以取得子进程I D和其终止状态。
SIGCONT 如果进程已停止,则使其继续运行。
此作业控制信号送给需要继续运行的处于停止状态的进程。如果接收到此信号的进程处于停止状态,则系统默认动作是使该进程继续运行,否则默认动作是忽略此信号。例如,v i编辑程序在捕捉到此信号后,重新绘制终端屏幕。
SIGSTOP 停止信号(不能被捕捉或忽略)。
SIGTSTP 交互停止信号。当用户在终端上按挂起键 (一般采用C t r l - Z)时,终端驱动程序产生此信号。
SIGTTIN 后台进程组的成员读控制终端。
当一个后台进程组进程试图读其控制终端时,终端驱动程序产生此信号。下列例外情形下不产生此信号,此时读操作返回出错, e r r n o设置为E I O:( a )读进程忽略或阻塞此信号,或( b )读进程所属的进程组是孤儿进程组。
SIGTTOU -后台进程组的成员写控制终端。
当一个后台进程组进程试图写其控制终端时产生此信号。与上面所述的S I G T T I N信号不同,一个进程可以选择为允许后台进程写控制终端。如果不允许后台进程写,则与S I G T T I N相似也有两种特殊情况:( a )写进程忽略或阻塞此信号,
或( b )写进程所属进程组是孤儿进程组。在这两种情况下不产生此信号,写操作返回出错,
e r r n o设置为E I O。
不论是否允许后台进程写,某些除写以外的下列终端操作也能产生此信号: t c s e t a t t r,
tcsendbreak, tcdrain, tcflush, tcflow 以及t c s e t p g r p。