kill:终止进程

  能够终止你希望停止的进程。

kill 命令的参数选项及说明

-l    列出全部的信号名称
-p    指定kill命令只打印相关进程的进程号,而不发送任何信号
-s    指定要发送的信号
 
[root@k8s-play ~]# kill -l   #<=参数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
[root@k8s-play ~]# kill -l SIGKILL #<=可以使用-l参数对信号名和数字信号互换。
9
[root@k8s-play ~]# kill -l 9
KILL

常用信号

信号        说明
HUP(1)    挂起,通常因终端掉线或用户退出而引发
INT(2)    中断,通常是按下Ctrl+c组合健来发出这个信号
QUIT(3)   退出,通常是按下Ctrl+\组合键来发出这个信号
KILL(9)   立即结束进程的运行
TERM(15)  终止,通常在系统关机时发送
TSTP(20)  暂停进程的运行,通常是按下Ctrl+z组合键来发出这个信号
 
    更多细节请参考signal在线手册的第七部分(man 7signal)。

终止进程

    kill指令默认使用的信号为15,用于结束进程。如果进程忽略此信号,则可以使用信号9强制终止进程。
    一般是先通过ps等命令获取到要终止进程的进程号,然后直接使用“kill 进程号”就可以了。
 
kill 2203          #<==Kill命令默认使用的信号为15,这种格式也是最常用的。
kill -s 15 2203    #<==这种格式使用-s参数明确指定发送值为15的信号,效果和 kill 2203 一样。
kill -15 2203      #<==上面的-s 15可以简写为 -15
 
如果用上面的方法还是无法终止进程,那么我们就可以用KILL(9)信号强制终止进程。
kill -9 2203    #<==信号9会强行终止进程,这会带未一些副作用、如教据丢失,或者终端无法恢复到正常扶态等,因此应尽量避免使用,除非进程使用其他信号无法终止。
 

扩展:特殊信号0的应用案例

    在kill的所有信号中,有一个十分特殊的信号值0,使用格式为kill -0 $pid。其中的 -0 表示不发送任何信号给$pid对应的进程,但是仍然会对$pid是否存在对应的进程进行检查,如果$pid对应的进程已存在,则返回0,若不存在则返回1。下面是系统参考脚本 /etc/init.d/mysqld。
 

killall:通过进程名终止进程

    使用kill命令终止进程还需要先获取进程的pid进程号,这个过程有点繁琐,而使用killall命令就可以直接用“killall 进程名”这种形式终止进程。
 
    killall [选项]  [进程名]
 
-c    对于很长的名字,要求能够准确匹配。默认情况下,如果一个进程名的长度超过了15个字符,则无法使用整个名字(溢出了)。在这种情况下,killall会终止所有匹配名字前15个字符的所有进程。而-e参数的作用是忽略模糊匹配项目。如果同时指定了-v选项,则killall会针对每个忽略的记录打印一条消息
 
-I    不区分大小写匹配
-g    终止属于该进程组的进程
-i    在终止进程之前询问是否确认
-l    列出所有已知的信号名
-q    如果没有进程终止则不提示
-r    使用正则表达式匹配要终止的进程名称
-s    用指定的信号代替默认信号
-u    终止指定用户的进程
-v    报告信号是否发送成功
-w    等待所有被终止的进程死去。killall每秒都会检查一次被终止的进程是否仍然存在,其仅在都死光后才返回。注意,如果信号被忽略,或者没有起作用,或者进程停留在僵尸状态,那么killall可能会永久等待
 
[root@cs6 ~]# killall crond
[root@cs6 ~]# killall crond
crond: 没有进程被杀死
[root@cs6 ~]# /etc/init.d/crond start
正在启动 crond: [确定]
[root@cs6 ~]# killall -w crond
[root@cs6 ~]# killall -w crond
crond: 没有进程被杀死

终止指定用户的所有进程

killall -u www nginx  #<=这种方式可以终正所有归属于www用户的nginx进程
 

pkill:通过进程名终止进程

 
    pkil命令可通过进程名终止指定的进程。使用killal终止进程需要连续执行几次,而pkill 可以杀死指定进程及其所有子进程。
 
pkill [选项] [进程名]
 
-t 终端    杀死指定终端的进程
-u 用户    杀死指定用户的进程
 

通过进程名终止进程

[root@cs6 ~]# service crond status
crond (pid 4641) 正在运行...
[root@cs6 ~]# pkill crond
[root@cs6 ~]# service crond status
crond 已死,但是 subsys 被锁

通过终端名终止进程

[root@cs6 ~]# w
07:20:39 up 1 day, 22:40, 1 user, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/4 10.0.0.1 00:59 0.00s 0.53s 0.00s w
[root@cs6 ~]# pkill -t tty4

通过用户名终止进程

[root@cs6 ~]# w
07:22:39 up 1 day, 22:42, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 10.0.0.1 07:21 1:34 0.07s 0.07s -bash
root pts/4 10.0.0.1 00:59 0.00s 0.54s 0.00s w
[root@cs6 ~]# pkill -u root
Connection closing...Socket close. Connection closed by foreign host. Disconnected from remote host(cs6-minimal) at 15:24:31. #<=使用 -u 选项杀死指定用户的所有进程,最好还是同时再指定进程名去杀,以免误杀服务。
 
 
 
 
 
 

9.4-6 kill & killall & pkill的更多相关文章

  1. kill, killall, pkill, xkill

    1. Kill Command – Kill the process by specifying its PID All the below kill conventions will send th ...

  2. Linux终止进程的工具kill/killall/pkill/xkill/skill用法区别(转)

    一. 终止进程的工具kill .killall.pkill.xkill 终止一个进程或终止一个正在运行的程序,一般是通过kill .killall.pkill.xkill等进行.比如一个程序已经死掉, ...

  3. Linux命令——killall 、kill 、pkill、xkill

    参考:killall .kill .pkill 命令详解 Using kill, killall, and pkill 4 Ways to Kill a Process – kill, killall ...

  4. Sending Signals to Processes with kill, killall, and pkill

    The Linux kernel allows many signals to be sent to processes. Use man 7 signals for a complete overv ...

  5. Linux之kill,pkill,killall命令

    kill,pkill,killall这些命令都是用来杀死进程的 查找进程的方法: ps -ef|grep pidof 进程名 ps命令 http://www.cnblogs.com/along1226 ...

  6. killall 、kill 、pkill 命令详解

    killall 命令 Linux系统中的killall命令用于杀死指定名字的进程(kill processes by name).我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀 ...

  7. killall 、kill 、pkill 命令详解 【转】

    之前常用地kill 命令就是 kill -9 XXid;kill -15 XXid;pkill 进程名: 今天发现killall也有适用场景,killall命令对杀死进程组(一个进程中有多线程的情况) ...

  8. killall 、kill 、pkill 命令区别

    转至:https://zhuanlan.zhihu.com/p/87904563 killall 命令 Linux系统中的killall命令用于杀死指定名字的进程(kill processes by ...

  9. [Linux] killall 、kill 、pkill 命令详解

    killall 命令 Linux系统中的killall命令用于杀死指定名字的进程(kill processes by name).我们可以使用kill命令杀死指定进程PID的进程,如果要找到我们需要杀 ...

随机推荐

  1. 如果要做优化,CSS提高性能的方法有哪些?

    一.前言 每一个网页都离不开css,但是很多人又认为,css主要是用来完成页面布局的,像一些细节或者优化,就不需要怎么考虑,实际上这种想法是不正确的 作为页面渲染和内容展现的重要环节,css影响着用户 ...

  2. 集群部署时的分布式session如何实现?

    session是啥?浏览器有个cookie,在一段时间内这个cookie都存在,然后每次发请求过来都带上一个特殊的jsessionid cookie,就根据这个东西,在服务端可以维护一个对应的sess ...

  3. JAVAEE_Servlet_08_HTTP状态码以及错误页面设置

    HTTP协议状态码 * HTTP状态码由三个十进制数字组成,第一个十进制数字定义了状态码的类型,后两个数字没有分类的作用, HTTP状态码共分为5种类型: - 1** 信息,服务器收到请求,需要请求者 ...

  4. Day17_101_IO_FileReaderAndFileWriterCopy

    IO_FileReaderAndFileWriterCopy * 代码: import java.io.FileNotFoundException; import java.io.FileReader ...

  5. IOS Widget(1):概述

    引言   本系列文章作者是安卓开发,以安卓开发的视角学习IOS小组件,记录一下踩坑记录,如有讲得不对的地方,路过大佬多包涵.如果你是想深入学习小组件,建议您顺着笔者的编号顺序阅读本系列文章.如果曾经了 ...

  6. Java整合极光推送 ( 简单 )

    Java 整合极光推送官方文档:https://github.com/jpush/jpush-api-java-client 这里记录一下简单的使用步骤:创建一个普通的 Maven 工程然后添加依赖 ...

  7. 硬件篇-02-TX2刷机Jetpack4.3

    Jetson TX2收货将近一周了,期间趁摄像头还没到,预先给TX2配置了环境.由于学校要求写毕设日志,故干脆一起在知乎写了,顺带帮助想要给TX2配环境却苦于网络上关于TX2的教程很少的同学. 本期内 ...

  8. dedecms发布文章排序按发布时间,不是更新时间

    织梦DEDECMS5.7这个版本存在一个问题,修改文章的同时也修改了文章的发布时间,这种情况下,如果我们调用最新文章时使用按"发布日期排序",就会打乱原来我们网站上的文章的顺序. ...

  9. iwrite复制攻略

    打开iwrite,一提交作业,发现: 这可咋办啊! 那就跟着步骤来呗: 按F12打开元素审查 点一下左上角 再点一下文本框,就能定位到HTML中的位置 在文本框中写几个字母,康康具体位置: 那就复制进 ...

  10. 【vue-05】vue-cli

    Vue-router官网 安装 vue-router是一个插件包,所以我们还是需要用npm 来进行安装.打开命令行工具,进入你的项目目录,输入下面命令. npm install vue-router ...