Linux 系统中的信号量

Travis2022/02/28
345 字, 阅读需要 2 分钟

除了 Kill 信号量,其他信号都留给了进程喘息之机,允许进行一些后处理。

INT, TERM, HUP, QUIT 都可以被称为可忽略信号。 KILL 信号不可忽略,强制终止进程。

$ kill -l
HUP INT QUIT ILL TRAP ABRT EMT FPE KILL BUS SEGV SYS PIPE ALRM TERM URG STOP TSTP CONT CHLD TTIN TTOU IO XCPU XFSZ VTALRM PROF WINCH INFO USR1 USR2

可忽略信号

2 号信号 INT (interrupt) 最弱。它的意思是 “停止你现在正在做的事情并等待进一步的用户输入”。这是终端中 <C-c> 产生的信号

15 号信号 TERM (terminate) 是正常的终止信号(kill 默认发出的信号)。它告诉应用程序干净地退出。该信号允许 trap 处理,它使接收进程能够以有序的方式进行一些清理。如果不想在关键操作中被中断,那么应用程序往往会忽略 SIGTERM

1 号信号 HUP (hang up) 在苛刻程度上与 SIGTERM 大致相当。当用户与终端断开连接时,它会自动发送到终端中运行的应用程序。

3 号信号 QUIT 是可忽略信号中最苛刻的。当想立刻终止进程时可以使用,并且默认情况下它通常会留下一个 core dump file

链接

© LICENSED UNDER CC BY-NC-SA 4.0