用kill发送信号
我们打开两个终端试试。在一个终端运行程序,在另一个终端用kill
向程序发送信号:
以上kill
命令将向进程发送信号,然后运行进程中配置好的处理函数。但有一个例外,代码捕捉不到SIGKILL
信号,也没法忽略它。也就是说,即使程序中有一个错误导致进程对任何信号都视而不见,还是能用kill –KILL
结束进程。
用raise()发送信号
有时你想让进程向自己发送信号,这时就可以用raise()
函数。
raise(SIGTERM);
通常会在自定义的信号处理函数中使用raise()
,这样程序就能在接收到低级别的信号时引发更高级别的信号。
这叫信号升级。