相信大家在使用Linux的过程中都会遇到过某个程序出错导致系统锁死的情况,按照常规的思维我们会通过重启来重新启动系统。然而事实上在Linux中并不需要进行重启就能够完成出错程序的关闭操作。在Linux中我们可以通过使用"kill"命令来强制终结它。那么到底它的格式语法和作用又是什么呢?在本文中课课家笔者就为大家一一道来。
◎Kill命令和信号
通常情况下当我们执行一个"kill"命令时实际上发送了一个信号给系统让它去终结不正常的应用。在linux系统中总共有60个我们可以使用的信号,但是基本上我们只需要知道SIGTERM(15)和SIGKILL(9)就可以了。一般来说我们可以用以下这个命令来查看所有信号的列表:
● kill-l
·SIGTERM -该信号表示的是请求一个进程停止运行,通常这个信号是可以被忽略的。进程可以用一段时间来正常关闭,而一个程序的正常关闭一般需要一段时间来保存进度并释放资源,换句话说它不是强制停止。
·SIGKILL -该信号表示的是强制进程立刻停止运行,程序不能忽略此信号,而未保存的进度将会丢失。
"kill"命令的语法是:
● kill [信号或选项] PID(s)
一般来说其默认信号(当没有指定的时候)是SIGTERM。当它不起作用时我们可以使用下面的命令来强制kill掉一个进程:
● kill SIGKILL PID或者 kill -9 PID
这里"-9"代表着SIGKILL信号。如果不知道应用的PID的话我们仅需要运行以下这个命令:
● psux
通常这个命令会显示所有正在运行的应用还有应用的PID。
举个例子,比如我们要kill掉Chrome则可以运行以下命令:
● kill -9 3629
当然我们也可以在同一时间kill多个进程,具体命令如下所示:
● kill -9 PID1 PID2 PID3
◎PKill
"pkill"命令允许我们使用扩展的正则表达式和其它匹配方式。我们现在可以使用应用的进程名kill掉它们而不是使用PID,比如我们如果要kill掉Firefox浏览器只需要运行命令:
● pkill firefox
使用正则表达式匹配的话我们可以输入进程名的部分字符,具体比如:
● pkill fire
另外为了避免kill掉错误的进程,我们应该用一下"pgrep -l [进程名]"列表来匹配进程名称,具体如下图所示:
◎Killall
killall同样使用进程名替代PID,并且它会kill掉所有的同名进程。比如正在运行多个Firefox浏览器,我们可以通过使用这个命令把它们全部kill掉:
● killall firefox
另外在Gnome中我们也可以使用这个命令来重启Nautilus:
● killall nautilus
以上就是Linux基础命令之kill命令的简单介绍。
本次的Linux基础命令之kill命令的讲解到此就暂告一段落,如果以后有什么相关的内容继续进行补充或者修改的话,笔者会在此继续进行相关的内容的补充或者修改的工作,同时也欢迎大家对本次的讲解提出自己的建议和补充。最后笔者希望本次的讲解对大家学习Linux和Linux认证能够起到一定的帮助作用!