如果不对信号处理,就会导致程序退出,但如果程序捕获信号进行处理,按照它的逻辑,它是不一定会退出的。

在这三个信号中,sigkill是不能被捕获的,程序收到这个信号后,一定会退出。这就是kill -9一定能保证将程序杀死的原因

1.kill pid、kill -15 pid 、kill -SIGTERM

系统会发送一个SIGTERM的信号给对应的程序。当程序接收到该signal后,将会发生以下的事情

  1. 程序立刻停止
  2. 当程序释放相应资源后再停止
  3. 程序可能仍然继续运行

大部分程序接收到SIGTERM信号后,会先释放自己的资源,然后在停止。但是也有程序可以在接受到信号量后,做一些其他的事情,并且这些事情是可以配置的。如果程序正在等待IO,可能就不会立马做出相应。也就是说,SIGTERM多半是会被阻塞的、忽略。

2.kill  -9 pid 、kill  -SIGKILL

SIGKILL既不能被应用程序捕获,也不能被阻塞或忽略,其动作是立即结束指定进程

3.killed-SIGINI pid

参考:http://blog.itpub.net/12474069/viewspace-622446/

SIGKILL和SIGTERM、SIGINT相关推荐

  1. SIGQUIT/SIGTERM/SIGINT/SIGKILL四种信号的区别

    SIGQUIT/SIGTERM/SIGINT/SIGKILL四种信号的区别 SIGQUIT: SIGTERM: SIGINT: SIGKILL: SIGQUIT: 在POSIX兼容的平台,SIGQUI ...

  2. SIGINT、SIGKILL和SIGTERM的区别

      首先要知道的是SIGINT.SIGKILL和SIGTERM代表的时一种信号.什么是信号?信号是一个 POSIX 内部通信系统:发送通知给进程,以告知其发生的事件.(windows系统不支持). 这 ...

  3. SIGTERM SIGINT

    SIGHUP     终止进程     终端线路挂断 SIGINT     终止进程     中断进程 SIGQUIT   建立CORE文件终止进程,并且生成core文件 SIGILL   建立COR ...

  4. sigterm sigint sigkill 区别

    我看网上应该有不少搜索这个区别的问题,但是回答的都不全面,其中sigterm与sigint尤其有一点区别比较重要,但大都没有提及,今天我就遇到了这个问题,纠结了20分钟才搞明白咋回事. 首先,对于说这 ...

  5. OS / Linux / SIGKILL 和 SIGTERM、SIGINT

    信号 编号 功能 触发方式 可捕获么? 能被堵塞么? SIGKILL  9 立刻结束程序运行 kill -9 [pid] / kill  -SIGKILL [pid] 不能 不能 SIGTERM 15 ...

  6. SIGINT、SIGKILL、SIGTERM 信号区别

    三者都是结束 / 终止进程运行,但略微有区别. 一.SIGINT 产生方式:键盘 Ctrl + C 产生结果:只对当前前台进程和他的所在的进程组的每个进程都发送 SIGINT 信号,之后这些进程会执行 ...

  7. SIGKILL与SIGTERM的区别

    SIGTERM SIGKILL的区别 前者可以被阻塞.处理和忽略,但是后者不可以.KILL命令的默认不带参数发送的信号就是SIGTERM.让程序有好的退出.因为它可以被阻塞,所以有的进程不能被结束时, ...

  8. php 多进程 常驻内存,PHP 多进程与信号中断实现多任务常驻内存管理 [Master/Worker 模型]...

    本文章基于pcntl扩展做的多进程测试. 进程调度策略 父子进程的调度由操作系统来负责,具体先调度子进程还是父进程由系统的调度算法决定,当然可以在父进程加上延时或是调用进程回收函数pcntl_wait ...

  9. linux shell trap捕捉信号 附信号表 SIGTERM SIGKILL

    trap捕捉信号有三种形式 第一种: trap "commands" signal-list 当脚本收到signal-list清单内列出的信号时,trap命令执行双引号中的命令. ...

最新文章

  1. Android 一个activity 加载一个Fragment
  2. java之定时器任务Timer用法
  3. python画图程序有图-python画图程序
  4. SpringMVC+Mybatis+MySQL配置Redis缓存
  5. SuperMap webGIS 简易提示框示例
  6. [bzoj2456]mode
  7. 性能测试中脚本怎么写_脚本在流程中的性能影响
  8. oracle ora-16003,ORA-31600错误分析
  9. APK反编译之APKTOOL的使用
  10. java虚拟机教程图解_深入拆解JAVA虚拟机学习教程
  11. 05-Java通过Executors提供四种线程池
  12. python selenium定位元素方法_[原创] python selenium 元素定位方法封装
  13. 25.使用getScript()方法异步加载并执行js文件
  14. 深入浅出Docker(五):基于Fig搭建开发环境
  15. M1 MacBook Air值不值得买?使用体验分享
  16. Truecrypt加密软件文件检测
  17. C++/OpenGL 入门(1):关于VS2017 中OpenGL部分安装过程
  18. thinkpad重装系统不引导_thinkpad系统重装教程
  19. Python 操作 Word
  20. 你同学都身价上亿了,你还在纠结早晨几点能起床

热门文章

  1. oracle安装图解
  2. Excel 2010 SQL应用085 指定序号段查询
  3. RabbitMQ消息应答重新入队
  4. connectionstrings汇总
  5. ps制作开关按钮图标
  6. C++获取重载函数的地址
  7. 处理 multipart 请求
  8. php程序员拜年代码,阿里大于PHP版短信发送DEMO代码实例
  9. 《Windows服务器配置与管理》
  10. 第一次比赛唯一ACCEPT的题目笑哭