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