专栏首页C/C++基础Linux 命令(76)—— kill 命令

Linux 命令(76)—— kill 命令

版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。

本文链接:https://blog.csdn.net/K346K346/article/details/102476221

1.命令简介

kill 命令用于终止进程或向进程发送指定信号。

kill 命令可以发送指定的信号到相应的进程或进程组。不指定信号缺省发送 SIGTERM(15)来终止指定进程。如果想强制终止进程,可以显示指定 SIGKILL(9) 信号,因为该信号无法被进程捕获。

本文介绍的是符合 POSIX 标准的 kill 功能,不同 Linux 发行版对 kill 的实现有所不同,具体参见其对应的帮助手册。

2.命令格式

kill -l [SIGNAL]
kill [-s SIGNAL | -SIGNAL]  PID...

操作数 PID 有两种取值: (1)进程 ID 或者 进程组 ID; (2)作业 ID,用于标识运行于后台的一组进程。

3.选项说明

-SIGNAL
-s SIGNAL
	指定信号名或信号值
-l [SIGNAL]
	指定信号名或信号值,转换信号名与信号值。如果不指定信号,则列出所有信号。信号的定义见 /usr/include/linux/signal.h

4.常用示例

(1)强制杀死当前 Shell 进程,退出当前会话。

echo $$
20174

kill -9 20174

(2)根据进程名称先查找出 PID 再强制杀死。

ps -ef | grep COMMADNAME | awk '{print $2;}' | xargs kill -9

也可以使用 killall 命令根据进程名称杀死进程。

killall -9 COMMADNAME 

(3)列出所有信号。

kill -l
 1) SIGHUP	 2) SIGINT	 3) SIGQUIT	 4) SIGILL	 5) SIGTRAP
 6) SIGABRT	 7) SIGBUS	 8) SIGFPE	 9) SIGKILL	10) SIGUSR1
11) SIGSEGV	12) SIGUSR2	13) SIGPIPE	14) SIGALRM	15) SIGTERM
16) SIGSTKFLT	17) SIGCHLD	18) SIGCONT	19) SIGSTOP	20) SIGTSTP
21) SIGTTIN	22) SIGTTOU	23) SIGURG	24) SIGXCPU	25) SIGXFSZ
26) SIGVTALRM	27) SIGPROF	28) SIGWINCH	29) SIGIO	30) SIGPWR
31) SIGSYS	34) SIGRTMIN	35) SIGRTMIN+1	36) SIGRTMIN+2	37) SIGRTMIN+3
38) SIGRTMIN+4	39) SIGRTMIN+5	40) SIGRTMIN+6	41) SIGRTMIN+7	42) SIGRTMIN+8
43) SIGRTMIN+9	44) SIGRTMIN+10	45) SIGRTMIN+11	46) SIGRTMIN+12	47) SIGRTMIN+13
48) SIGRTMIN+14	49) SIGRTMIN+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

只有第信号 SIGKILL(9) 才可以无条件终止进程,其他信号进程都有权利忽略,下面是常用的信号:

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

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 认识初始化

    初始化是编码过程中的重要操作,往往由于被忽略,导致使用未初始化的变量(或内存区域),将程序置于不确定的状态,产生各种bug,严重影响的程序的健壮性。正确地理解和...

    Dabelv
  • Linux命令(54)——trap命令(builtin)

    trap命令是Shell内建命令,用于指定在接收到信号后将要采取的动作。常见的用途是在脚本程序被中断时完成清理工作。

    Dabelv
  • MySQL查看和修改数据库存储目录

    MySQL默认数据库存储目录是在根目录/下,如果根目录存储空间很小的话,我们需要数据库的存储目录,具体方法可参考:MySQL更改数据库数据存储目录。

    Dabelv
  • Effective c++ 小结

    最近又重新看了Effective C+,不过到现在还是有好多地方不懂的,先记下笔记,待用的时候再细细琢磨。 条款1:尽量用const和inline而不用#def...

    猿人谷
  • 解决Tomcat启动后localhost:8080无法访问的问题(Mac)

    排查了很久发现是startup.sh的权限问题,于是终端进入/usr/local/Cellar/tomcat/9.0.10/libexec/bin路径下,...

    Zachary46
  • [神器]在现实世界中扫描、搜索——填补Google空白

    大数据文摘
  • 互联网女皇Meeker2017报告最新发布:看看她如何评论中国(附300页ppt下载)

    大数据文摘
  • python流数据动态可视化

    “流数据”是连续生成的数据,通常由某些外部源(如远程网站,测量设备或模拟器)生成。这种数据在金融时间序列,Web服务器日志,科学应用程序和许多其他情况下很常见。...

    spark
  • java开发系统内核:放大招!为系统开发星球大战游戏程序

    望月从良
  • 网站APP越权漏洞 该怎样进行渗透测试

    渗透测试在网站,APP刚上线之前是一定要做的一项安全服务,提前检测网站,APP存在的漏洞以及安全隐患,避免在后期出现漏洞,给网站APP运营者带来重大经济损失,很...

    网站安全专家

扫码关注云+社区

领取腾讯云代金券