Linux -- 信号

信号(Signal)

1. 信号基本概念

  • 信号是软件中断,用于内核 / 进程通知某进程发生事件。

  • 进程对信号的三种处理方式:

    1. 默认动作(终止、暂停、忽略等)

    2. 忽略(SIGKILL、SIGSTOP 不可忽略)

    3. 自定义捕捉(注册信号处理函数)

2. 常用信号

信号名 编号 说明 备注
SIGINT 2 终端中断 Ctrl+C 常用
SIGQUIT 3 终端退出 Ctrl+\ 产生 core
SIGKILL 9 强制杀死进程 不可捕捉、不可忽略
SIGALRM 14 闹钟超时
SIGUSR1 10 用户自定义信号

3. 信号相关函数

  1. signal (信号,处理方式)

    • SIG_IGN:忽略信号

    • SIG_DFL:恢复默认处理

    • 自定义函数:捕获信号

  2. kill (pid, 信号)

    • 向指定进程发送信号
  3. atoi()

    • 字符串转整数(命令行传信号 / 进程号)

4. 信号关键特性

  • SIGKILL (9)、SIGSTOP (19) 不能被捕获、忽略、阻塞

  • 信号处理函数执行期间,同种信号会被暂时阻塞

  • 信号是异步的:什么时候来不确定

相关推荐
leikooo2 小时前
Skills 实战:Unsplash → COS 自动化配图
运维·ai·自动化
Lumos_7772 小时前
Linux -- 管道
linux·运维·服务器
哦哦~9212 小时前
揭示多功能合成界面,增强致密厚复合电极的机械和电化学性能
服务器·网络·人工智能
宇宙realman_9992 小时前
DSP28335-FlashAPI使用
linux·前端·python
华清远见IT开放实验室2 小时前
STM32+Linux双体系,零基础玩转嵌入式
linux·stm32·嵌入式硬件
重生的黑客2 小时前
Linux 进程状态详解:从理论到实践,僵尸进程与孤儿进程
linux·运维·服务器
脆皮炸鸡7553 小时前
进程的程序替换
linux·经验分享·笔记·vim·学习方法
划水的code搬运工小李3 小时前
ubuntu下使用opencode
linux·运维·ubuntu
爱学习的小囧3 小时前
ESXi 环境 NFSv3 与 NFSv4.1 哪个更稳?深度对比 + 选型指南 + 运维全教程
运维·服务器·网络·虚拟化