平时我们在终端里面用的 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
+关注
关注
87文章
11290浏览量
209292 -
函数
+关注
关注
3文章
4326浏览量
62560 -
进程
+关注
关注
0文章
203浏览量
13960 -
实时信号
+关注
关注
0文章
4浏览量
5190
原文标题:进程间通信之信号
文章出处:【微信号:学益得智能硬件,微信公众号:学益得智能硬件】欢迎添加关注!文章转载请注明出处。
发布评论请先 登录
相关推荐
评论