请列举你能想到的UNIX信号,并说明信号用途。
封面图
•
2025-10-23
•
Linux
236
0
0
0
在 UNIX 和类 UNIX 系统(如 Linux、macOS)中,信号(signal)是一种进程间通信的机制,用于通知进程发生了某种事件。以下是一些常见的 UNIX 信号及其用途: --- ### 📌 常见 UNIX 信号列表及说明 | 信号编号 | 信号名 | 说明 | |----------|------------|------| | 1 | `SIGHUP` | 挂起信号,常用于通知进程重新加载配置文件(如 `kill -1 <pid>`)。 | | 2 | `SIGINT` | 中断信号(通常是 Ctrl+C 发出),用于终止前台进程。 | | 3 | `SIGQUIT` | 退出信号(通常是 Ctrl+\ 发出),与 `SIGINT` 类似,但会生成核心转储。 | | 4 | `SIGILL` | 非法指令,进程执行了非法指令时触发。 | | 5 | `SIGTRAP` | 调试陷阱,用于调试器捕获。 | | 6 | `SIGABRT` | 异常终止(由 `abort()` 函数引发),通常用于程序异常退出。 | | 7 | `SIGBUS` | 总线错误,通常由于内存访问错误或对齐问题引起。 | | 8 | `SIGFPE` | 浮点异常,如除以零等算术错误。 | | 9 | `SIGKILL` | 强制终止信号(不可被忽略或捕获),用于强制杀死进程。 | | 10 | `SIGUSR1` | 用户定义信号 1,供用户自定义使用。 | | 11 | `SIGSEGV` | 段错误(非法内存访问),是常见崩溃原因之一。 | | 12 | `SIGUSR2` | 用户定义信号 2,供用户自定义使用。 | | 13 | `SIGPIPE` | 管道破裂,当写入没有读取端的管道时触发。 | | 14 | `SIGALRM` | 定时器信号,常用于超时处理。 | | 15 | `SIGTERM` | 终止信号(可被捕获或忽略),用于正常终止进程。 | | 16 | `SIGSTKFLT`| 栈错误(已弃用,不推荐使用)。 | | 17 | `SIGCHLD` | 子进程状态改变(如子进程结束),常用于父进程等待子进程。 | | 18 | `SIGCONT` | 继续运行(停止的进程恢复运行)。 | | 19 | `SIGSTOP` | 停止信号(不可被忽略或捕获),用于暂停进程。 | | 20 | `SIGTSTP` | 终止信号(通常是 Ctrl+Z 发出),用于暂停前台进程。 | | 21 | `SIGTTIN` | 后台进程试图读取输入(阻止其继续运行)。 | | 22 | `SIGTTOU` | 后台进程试图写入输出(阻止其继续运行)。 | | 23 | `SIGURG` | 套接字上有紧急数据到达。 | | 24 | `SIGXCPU` | CPU 时间超限(进程使用过多 CPU 时间)。 | | 25 | `SIGXFSZ` | 文件大小超限(进程写入文件超过限制)。 | | 26 | `SIGVTALRM`| 虚拟定时器信号(用于时间统计)。 | | 27 | `SIGPROF` | 性能分析定时器信号。 | | 28 | `SIGWINCH` | 窗口大小变化(常用于终端程序)。 | | 29 | `SIGIO` | I/O 就绪(异步 I/O 通知)。 | | 30 | `SIGPWR` | 电源故障(某些系统支持)。 | | 31 | `SIGSYS` | 系统调用错误(某些系统支持)。 | | 32 | `SIGRTMIN` | 实时信号起始(具体含义依赖实现)。 | | ... | ... | ...(还有多个实时信号,范围为 `SIGRTMIN` 到 `SIGRTMAX`) | --- ### 🔍 补充说明 - **不可捕获/忽略的信号**:如 `SIGKILL` 和 `SIGSTOP`,不能被进程捕获或忽略。 - **可捕获的信号**:如 `SIGINT`、`SIGTERM`、`SIGUSR1` 等,可以使用 `signal()` 或 `sigaction()` 进行处理。 - **核心转储(Core Dump)**:某些信号(如 `SIGSEGV`、`SIGABRT`)会生成核心转储文件,用于调试。 --- ### ✅ 示例命令 ```bash kill -1 <pid> # 发送 SIGHUP kill -2 <pid> # 发送 SIGINT (Ctrl+C) kill -9 <pid> # 发送 SIGKILL kill -15 <pid> # 发送 SIGTERM ``` --- 如果你需要特定信号的详细信息(比如在 C 编程中如何处理),也可以告诉我,我可以进一步解释。
上一篇:
请列举、你能想到的所有的字符串查找算法,并加注释简单说明。
下一篇:
php面向对象编程和面向对象设计的五个基本原则
标题录入,一次不能超过6条
留言
评论