Linux 精通Linux的“kill”命令

简介: Linux 精通Linux的“kill”命令

概述


无论你使用哪种操作系统,你一定会遇到某个行为失常的应用,它把自己锁死并拒绝关闭。在Linux(还有Mac),你可以用一个”kill”命令强制终结它。本篇博文中,我们将展示给你多种方式使用”kill”命令终结应用。


Kill命令和信号


[xgj@entel2 ~]$ kill
kill: usage: kill [-s sigspec | -n signum | -sigspec] pid | jobspec ... or kill -l [sigspec]
可以清晰的看到 -n 指的是 信号编号
[xgj@entel2 ~]$ kill -l    ---> 查看Linux/Unix的信号变量
 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    


当你执行一个”kill”命令,你实际上发送了一个信号给系统,让它去终结不正常的应用。总共有64个你可以使用的信号,但是基本上你只需要知道SIGTERM(15)和SIGKILL(9)。


区别:


SIGTERM(15) - 此信号请求一个进程停止运行。此信号是可以被忽略的。进程可以用一段时间来正常关闭,一个程序的正常关闭一般需要一段时间来保存进度并释放资源。换句话说,它不是强制停止。


SIGKILL(9) - 此信号强制进程立刻停止运行。程序不能忽略此信号,而未保存的进度将会丢失


使用”kill”的语法是:

kill [信号或选项] PID(s)

默认信号(当没有指定的时候)是SIGTERM。当它不起作用时,你可以使用下面的命令来强制kill掉一个进程:

kill SIGKILL PID

或者

kill -9 PID

这里”-9”代表着SIGKILL信号。


如果你不知道应用的PID,仅需要运行这个命令:

ps ux


它会显示所有正在运行的应用还有应用的PID。


20170117130152305.png

例如,要kill掉**Agent,我会运行命令:

kill -9 31921

也可以在同一时间kill多个进程。

kill -9 PID1 PID2 PID3


PKill


”pkill”命令允许使用扩展的正则表达式和其它匹配方式。

你现在可以使用应用的进程名kill掉它们,而不是使用PID。例如,要kill掉xgjAgent,只需要运行命令:


pkill xgjAgent


使用正则表达式匹配的话,你可以输入进程名的部分字符,比如:

pkill xgj


为了避免kill掉错误的进程,你应该用一下”pgrep -l [进程名]“列表来匹配进程名称。


Killall


killall同样使用进程名替代PID,并且它会kill掉所有的同名进程。例如,如果你正在运行多个xgjAgent的实例,可以用命令把它们全部kill掉:

killall xgjAgent


xkill


xkill 是图形方式kill一个应用。当你在终端键入”xkill”,你的光标将立刻变成一个”十字”。你只需要做的是在不正常的应用上点击一下,它就会立刻kill掉这个应用。

相关文章
|
17天前
|
Web App开发 Linux 网络安全
工作中常用到的Linux命令
工作中常用到的Linux命令
|
17天前
|
Web App开发 Java Linux
Linux之Shell基本命令篇
Linux之Shell基本命令篇
Linux之Shell基本命令篇
|
5天前
|
机器学习/深度学习 缓存 监控
linux查看CPU、内存、网络、磁盘IO命令
`Linux`系统中,使用`top`命令查看CPU状态,要查看CPU详细信息,可利用`cat /proc/cpuinfo`相关命令。`free`命令用于查看内存使用情况。网络相关命令包括`ifconfig`(查看网卡状态)、`ifdown/ifup`(禁用/启用网卡)、`netstat`(列出网络连接,如`-tuln`组合)以及`nslookup`、`ping`、`telnet`、`traceroute`等。磁盘IO方面,`iostat`(如`-k -p ALL`)显示磁盘IO统计,`iotop`(如`-o -d 1`)则用于查看磁盘IO瓶颈。
|
14天前
|
NoSQL Linux Shell
常用的 Linux 命令
常用的 Linux 命令
36 9
|
1天前
|
监控 Linux Windows
50个必知的Linux命令技巧,你都掌握了吗?(下)
50个必知的Linux命令技巧,你都掌握了吗?(下)
|
2天前
|
Linux Shell Windows
Linux 常用基本命令
Linux 常用基本命令
|
2天前
|
Ubuntu Linux Shell
linux免交互登陆远程主机并执行命令(密钥对和Expect)
linux免交互登陆远程主机并执行命令(密钥对和Expect)
|
2天前
|
Linux
【Linux】常用命令
【Linux】常用命令
22 0
|
2天前
|
安全 Ubuntu Linux
Linux 网络操作命令Telnet
Linux 网络操作命令Telnet
16 0
Linux 网络操作命令Telnet
|
4天前
|
Linux 数据安全/隐私保护
Linux常用命令实例带注释
Linux常用命令实例带注释
30 0