当前位置:   article > 正文

Linux中的信号简单介绍

Linux中的信号简单介绍

信号的机制:

进程A给进程B发送信号,进程B收到信号之前先执行自己的代码,收到信号后,不管执行到程序的什么位置,都要暂停运行去处理信号,处理完毕后再继续执行。 

信号的状态:

信号有三种状态:产生,未决和递达。

信号的产生:

  • 按键:Ctrl+z->将当前正在前台运行的命令挂起(Suspend),并放入后台,但它仍然会保持在内存中。使用fg命令将其恢复到前台继续执行,使用bg命令将其放入后台继续执行。
  •            Ctrl+c->发送中断信号(SIGINT)给当前正在前台运行的命令,强制其终止执行。
  •            Ctrl+/->杀死进程
  • 系统调用:kill,raise,absort
  • 软件条件产生:如:定时器alarm(每一个进程都有一个唯一的定时器)

  • 硬件异常产生:如:段错误,总线错误
  • 命令产生:如:kill命令

未决:产生和递达之间的状态。主要由于阻塞导致该状态

递达:递送并且到达进程。

信号的处理方式:

  • 执行默认动作
  • 忽略信号(丢弃不处理)
  • 捕获信号(调用用户的自定义的处理函数)

默认动作有: 

  1. Term Default action is to terminate the process.
  2. (终止进程)
  3. Ign Default action is to ignore the signal.
  4. (忽略该信号)
  5. Core Default action is to terminate the process and dump core (see
  6. core(5)). (内存非法访问)
  7. Stop Default action is to stop the process.
  8. (停止进程)
  9. Cont Default action is to continue the process if it is currently
  10. stopped. (进程继续执行)

 The signals SIGKILL and SIGSTOP cannot be caught, blocked, or ignored.

信号的四要素:

  • 信号的编号
  • 信号的名字
  • 信号的默认处理动作
  • 信号是如何产生的
声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/不正经/article/detail/90037
推荐阅读
相关标签
  

闽ICP备14008679号