kill和killall两个命令是Linux下进程管理的常用命令,主要用来结束指定Linux中正在运行的进程(terminate a process)。前台进程可以使用Ctrl+C结束进程,但是,后台进程就须用kill或者killall命令来结束进程。kill命令是通过向进程发送指定的信号来结束相应进程的,首先必须使用相应的命令找到进程号。killall命令则使用进程的名称来结束进程,使用此指令可以杀死一组同名进程。在默认情况下,kill和killall都采用为15的TERM信号。
kill参数:
-a:当处理当前进程时,不限制命令名和进程号的对应关系;
-l <信号名称>:若不加<信号名称>选项,则-l参数会列出全部的信号名称和对应的编号;
-p:指定kill 命令只打印相关进程的进程号,而不发送任何信号;
-s <信号名称>:指定要送出的信息;
-u:指定用户。
kill例子:
1 2 3 | [root@raykaeso ~]# kill -l #列出所有的信号和对应的编号 [root@raykaeso ~]# kill -9 22584 #彻底结束进程号为22584的进程 [root@raykaeso ~]# kill -u raykaeso #结束指定用户raykaeso的所有进程 |
killall参数:
-e:对长名称进行精确匹配;
-l:忽略大小写的不同;
-p:杀死进程所属的进程组;
-i:交互式杀死进程,杀死进程前需要进行确认;
-l:打印所有已知信号列表;
-q:如果没有进程被杀死。则不输出任何信息;
-r:使用正规表达式匹配要杀死的进程名称;
-s:用指定的进程号代替默认信号“SIGTERM”;
-u:杀死指定用户的进程。
-v:报告信号是否成功发送.
-V:显示版本信息.
killall例子:
1 | [root@raykaeso ~]# killall httpd #结束所有httpd进程 |
下面是kill和killall常用的信号( signal):
HUP 1 终端进程断线
INT 2 中断进程(等同于 Ctrl + C)
QUIT 3 退出进程(等同于 Ctrl + \)
TERM 15 结束进程
KILL 9 强制终止进程
CONT 18 继续进程(与STOP相反, fg/bg命令)
STOP 19 暂停进程(同 Ctrl + Z)