平时我们在终端里面用的 CTRL C 结束进程或者CTRL Z 暂停进程,都属于信号的一种。
Linux里面信号有60多个,分为标准信号和实时信号,编号从1到31,34到64。不同的内核版本略有区别。
发送信号一般用 kill 指令,比如启动一个进程,先查到进程的 ID 号,然后使用 kill -2 加上进程号就能结束进程。其中,-2 表示 SIGINT 信号,这个宏在 signal.h 头文件里面有定义。使用这些信号的时候,既可以用宏定义,又可以用编号。
结束一个进程,很多时候会选择 kill -9 ,为什么选择 9 这个信号,因为这个信号比较特殊,所有进程都不能忽略它。
kill不仅是命令,还是一个函数,用法和命令差不多也是提供进程号,加上要发送的信号值,收到信号的进程默认动作是结束。不过也可以通过 signal 或者 sigaction 来指定处理方法,可以是忽略当前信号,也可以执行指定的函数。
审核编辑:黄飞
-
Linux
+关注
关注
88文章
11628浏览量
217951 -
函数
+关注
关注
3文章
4406浏览量
66831 -
进程
+关注
关注
0文章
208浏览量
14478 -
实时信号
+关注
关注
0文章
4浏览量
5275
原文标题:进程间通信之信号
文章出处:【微信号:学益得智能硬件,微信公众号:学益得智能硬件】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
Linux进程间通信(IPC)全解析:从管道到 Socket,一篇讲透
探索信号分析的奇妙世界
DLPC150和DMD2010NIR间的通信协议是什么?
是德示波器5G通信信号分析

进程间通信的信号问题分析
评论