信号是Linux系统中一种重要的进程间通信机制,用于通知进程发生的特定事件或异常情况。本文将详细介绍Linux信号机制的概述,并提供相应的代码示例。
-
信号概述
在Linux中,信号由内核或进程发送给其他进程,以通知其发生的事件。每个信号都有一个唯一的编号,用于标识不同的事件或操作。常见的信号包括SIGINT(中断信号,通常由Ctrl+C触发)、SIGTERM(终止信号,用于正常终止进程)和SIGKILL(强制终止信号,无法被阻塞或处理)等。 -
信号的使用
可以使用kill命令发送信号给指定的进程,例如:
kill -SIGINT PID
其中,PID是要发送信号的进程ID。除了kill命令外,还可以使用其他系统调用函数发送信号,如kill()和raise()。
- 信号处理
当进程接收到一个信号时,可以选择不同的处理方式。常见的处理方式包括忽略信号、执行默认操作或自定义处理函数。可以使用signal()系统调用函数来注册信号处理函数。以下是一个示例,展示如何在接收到SIGINT信号时执行自定义处理函数: