首先查看kill信号

$ kill -l1) SIGHUP       2) SIGINT       3) SIGQUIT      4) SIGILL       5) SIGTRAP6) SIGABRT      7) SIGEMT       8) SIGFPE       9) SIGKILL     10) SIGBUS
11) SIGSEGV     12) SIGSYS      13) SIGPIPE     14) SIGALRM     15) SIGTERM
16) SIGURG      17) SIGSTOP     18) SIGTSTP     19) SIGCONT     20) SIGCHLD
21) SIGTTIN     22) SIGTTOU     23) SIGIO       24) SIGXCPU     25) SIGXFSZ
26) SIGVTALRM   27) SIGPROF     28) SIGWINCH    29) SIGPWR      30) SIGUSR1
31) SIGUSR2     32) SIGRTMIN    33) SIGRTMIN+1  34) SIGRTMIN+2  35) SIGRTMIN+3
36) SIGRTMIN+4  37) SIGRTMIN+5  38) SIGRTMIN+6  39) SIGRTMIN+7  40) SIGRTMIN+8
41) SIGRTMIN+9  42) SIGRTMIN+10 43) SIGRTMIN+11 44) SIGRTMIN+12 45) SIGRTMIN+13
46) SIGRTMIN+14 47) SIGRTMIN+15 48) SIGRTMIN+16 49) SIGRTMAX-15 50) SIGRTMAX-14
51) SIGRTMAX-13 52) SIGRTMAX-12 53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9
56) SIGRTMAX-8  57) SIGRTMAX-7  58) SIGRTMAX-6  59) SIGRTMAX-5  60) SIGRTMAX-4
61) SIGRTMAX-3  62) SIGRTMAX-2  63) SIGRTMAX-1  64) SIGRTMAX

在Linux中终止一个进程有两种方式,如果是前台进程可以使用Ctrl+C键进行终止(kill -2);如果是后台进程,那么需要使用kill命令来终止。

kill的命令参数有以下几种:

-l 信号,若果不加信号的编号参数,则使用“-l”参数会列出全部的信号名称-a 当处理当前进程时,不限制命令名和进程号的对应关系-p 指定kill 命令只打印相关进程的进程号,而不发送任何信号-s 指定发送信号-u 指定用户

通常情况下,我们使用的-l(信号)的时候比较多,如我们前文提到的kill -9中的9就是信号。

信号如果没有指定的话,默认会发出终止信号(15)。常用的信号如下

HUP 1 终端断线
INT 2 中断(同 Ctrl + C)
QUIT 3 退出(同 Ctrl + \)
TERM 15 终止
KILL 9 强制终止
CONT 18 继续(与STOP相反, fg/bg命令)
STOP 19 暂停(同 Ctrl + Z)

比较常用的就是强制终止信号:9终止信号:15,另外,中断信号:2其实就是我们前文提到的Ctrl + C结束前台进程。


kill -9 和 kill -15的区别

kill命令默认的信号就是15,首先来说一下这个默认的kill -15信号。

当使用kill -15时,系统会发送一个SIGTERM的信号给对应的程序。当程序接收到该信号后,具体要如何处理是自己可以决定的。

这时候,应用程序可以选择:

  • 1、立即停止程序

  • 2、释放响应资源后停止程序

  • 3、忽略该信号,继续执行程序

因为kill -15信号只是通知对应的进程要进行"安全、干净的退出",程序接到信号之后,退出前一般会进行一些"准备工作",如资源释放、临时文件清理等等,如果准备工作做完了,再进行程序的终止。

但是,如果在"准备工作"进行过程中,遇到阻塞或者其他问题导致无法成功,那么应用程序可以选择忽略该终止信号。

这也就是为什么我们有的时候使用kill命令是没办法"杀死"应用的原因,因为默认的kill信号是SIGTERM(15),而SIGTERM(15)的信号是可以被阻塞和忽略的。

kill -15相比,kill -9就相对强硬一点,系统会发出SIGKILL信号,他要求接收到该信号的程序应该立即结束运行,不能被阻塞或者忽略。

所以,相比于kill -15命令,kill -9在执行时,应用程序是没有时间进行"准备工作"的,所以这通常会带来一些副作用,数据丢失或者终端无法恢复到正常状态等。

linux: kill -9相关推荐

  1. 详解linux杀死进程方法:kill、pkill、killall之间的区别及用法!

    详解linux杀死进程方法:kill.pkill.killall之间的区别及用法! kill 命令 killall 命令 pkill 命令 kill.pkill.killall之间的区别 kill 命 ...

  2. 每天一个linux命令(42):kill命令

    Linux中的kill命令用来终止指定的进程(terminate a process)的运行,是Linux下进程管理的常用命令.通常,终止一个前台进程可以使用Ctrl+C键,但是,对于一个后台进程就须 ...

  3. pkill mysql_每天一个linux命令:kill命令

    终止一个进程或终止一个正在运行的程式,一般是通过kill .killall.pkill.xkill 等进行.比如一个程式已死掉,但又不能退出,这时就应该考虑应用这些工具. 另外应用的场合就是在服务器管 ...

  4. 老板:kill -9的原理都不知道就敢到线上执行,明天不用来了

    点击上方蓝色"方志朋",选择"设为星标" 回复"666"获取独家整理的学习资料! 这是Hollis的第 270篇原创分享 作者 l Holl ...

  5. linux bin命令解释,Linux:“awk”命令的妙用

    原标题:Linux:"awk"命令的妙用 导读awk是一个强大的文本分析工具,简单来说awk就是把文件逐行读入,(空格,制表符)为默认分隔符将每行切片,切开的部分再进行各种分析处理 ...

  6. linux下kill命令小结

    1.作用  kill命令用来中止一个进程. 2.格式  kill [ -s signal | -p ] [ -a ] pid ...  kill -l [ signal ] 3.参数  -s:指定发送 ...

  7. Window VNC远程控制LINUX:VNC详细配置介绍

    Window VNC远程控制LINUX:VNC详细配置介绍 //---------------------------------------vnc linux下的详细配置 1.VNC的启动/停止/重 ...

  8. Linux 精通Linux的“kill”命令

    概述 Kill命令和信号 PKill Killall xkill 概述 无论你使用哪种操作系统,你一定会遇到某个行为失常的应用,它把自己锁死并拒绝关闭.在Linux(还有Mac),你可以用一个&quo ...

  9. linux 系统kill用法

    Linux下Kill函数用法 (2014-06-24 18:13:17) 转载▼ 标签: linux kill函数 分类: Linux-ALL Linux下Kill函数用法[ KILL ]功能描述: ...

最新文章

  1. 2007年你必须学习的10项.NET技术
  2. Linux中检查本地系统上的开放端口列表的方法
  3. ABAP-小技巧/知识(1)
  4. 初中职校计算机学什么,职高有哪些专业 初中生毕业上职高学什么好
  5. qemu模拟imx6用户态环境
  6. 黄金法则之《终身学习》
  7. xdm,把我大学四年能用到的软件都分享给你。
  8. 143. Reorder List 重排链表
  9. Nuget多项目批量打包上传服务器的简明教程
  10. ArrayList整理
  11. matlab几何计算程序集
  12. Hibernate-HQL基础
  13. 蓝桥杯 ADV-88 算法提高 输出正反三角形
  14. HashMap(JDK1.8)
  15. 关于C# .net JavaScript跨域
  16. Spring Cloud(Greenwich版)-05-Spring Cloud集成Ribbon(客户端负载均衡组件)
  17. 2019年1月1日起,电商法实施、电子证照“国标”正式发布
  18. PM981/PM981a安装黑苹果-VM Ware教程
  19. 琵琶行用计算机弹,琵琶行中的三次弹奏
  20. 传统语音识别介绍【二】—— 特征提取

热门文章

  1. C# WebService发布 未能创建类型 问题
  2. 力学,软体和刚体碰撞响应 以及 层次KDOP_OBB包围盒技术
  3. 5月16日上午学习日志
  4. 谈MicroMessageTest的开始创建
  5. Python 第十一篇:开发堡垒机
  6. Web自动化测试中的接口测试
  7. J2ME结构与相关规范介绍
  8. redhat linux启动mysql_redhatlinux下mysql启动不了
  9. python tensorflow教程_TensorFlow入门教程
  10. UI必不可少!手机计算器界面设计可学习案例