kill:终止进程
kill 命令的参数选项及说明
-l 列出全部的信号名称
-p 指定kill命令只打印相关进程的进程号,而不发送任何信号
-s 指定要发送的信号
常用信号
信号 说明
HUP(1) 挂起,通常因终端掉线或用户退出而引发
INT(2) 中断,通常是按下Ctrl+c组合健来发出这个信号
QUIT(3) 退出,通常是按下Ctrl+\组合键来发出这个信号
KILL(9) 立即结束进程的运行
TERM(15) 终止,通常在系统关机时发送
TSTP(20) 暂停进程的运行,通常是按下Ctrl+z组合键来发出这个信号
killall:通过进程名终止进程
使用kill命令终止进程还需要先获取进程的pid进程号,这个过程有点繁琐,而使用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: 没有进程被杀死
3# 终止指定用户的所有进程
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 被锁
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 选项杀死指定用户的所有进程,最好还是同时再指定进程名去杀,以免误杀服务。
[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 选项杀死指定用户的所有进程,最好还是同时再指定进程名去杀,以免误杀服务。
参考链接 :
https://blog.csdn.net/weixin_30512785/article/details/95638604?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task