Linux中的信号

Linux中的信号

信号名称触发场景默认行为
SIGHUP终端挂断(如关闭终端)、进程所属会话结束终止进程(可被捕获)
SIGINT用户按下 Ctrl + C(中断当前进程)终止进程(可被捕获)
SIGQUIT用户按下 Ctrl + \(退出当前进程并生成核心转储文件)终止进程并生成 core 文件(可被捕获)
SIGILL进程执行非法指令(如错误的机器码、代码损坏)终止进程并生成 core 文件(可被捕获)
SIGTRAP调试断点触发(如 gdb 调试时的断点)终止进程并生成 core 文件(可被捕获)
SIGABRT进程调用 abort() 函数(主动触发异常终止)终止进程并生成 core 文件(不可忽略,可被捕获)
SIGBUS总线错误(如内存地址对齐错误、非法内存访问)终止进程并生成 core 文件(可被捕获)
SIGFPE浮点运算错误(如除以 0、浮点溢出)终止进程并生成 core 文件(可被捕获)
SIGKILL强制终止进程(管理员常用,如 kill -9 进程ID)强制终止进程(不可捕获、不可忽略)
SIGUSR1用户自定义信号1(用于进程间通信,无默认触发场景)终止进程(可被捕获、忽略)
SIGSEGV段错误(进程访问非法内存地址,如空指针、越界访问)终止进程并生成 core 文件(可被捕获)
SIGUSR2用户自定义信号2(与 SIGUSR1 配合,用于自定义通信逻辑)终止进程(可被捕获、忽略)
SIGPIPE管道破裂(如向已关闭的管道写入数据、网络连接断开后写入)终止进程(可被捕获)
SIGALRM闹钟信号(进程调用 alarm() 函数设置的超时时间到)终止进程(可被捕获)
SIGTERM正常终止信号(默认 kill 命令发送,如 kill 进程ID)终止进程(可被捕获、可忽略,推荐用于优雅终止进程)
SIGCHLD子进程终止、暂停或继续运行时,通知父进程忽略(可被捕获,用于父进程回收子进程资源)
SIGSTOP强制暂停进程(如 kill -19 进程ID)暂停进程(不可捕获、不可忽略)
SIGTSTP用户按下 Ctrl + Z(暂停当前进程,放入后台)暂停进程(可被捕获、可忽略)