说明
pkill命令可以通过进程名终止指定的进程。使用killall命令终止进程需要连续执行几次,二pkill可以杀死指定进程及其所有子进程。
可以使用该命令来踢掉某个用户登录
格式
pkill [option] [pname]
常用参数
- -t 终端:杀死指定终端的进程
- -u 用户:杀死指定用户的进程
示例
1、杀死指定进程名称的进程
[root@localhost ~]# ps -aux|grep nginx #查看nginx进程
root 3212 0.0 0.1 45896 1304 ? Ss 00:44 0:00 nginx: master process /apps/nginx/sbin/nginx
nginx 3220 0.0 1.9 374796 20040 ? S 00:44 0:00 php-fpm: pool www
nginx 3221 0.0 1.8 374376 18384 ? S 00:44 0:00 php-fpm: pool www
nginx 3227 0.0 0.2 46756 2688 ? S 00:45 0:00 nginx: worker process
root 3508 0.0 0.0 112660 976 pts/0 S+ 03:46 0:00 grep --color=auto nginx
[root@localhost ~]# pkill nginx #终止nginx进程
[root@localhost ~]# ps -aux|grep nginx #nginx相关进程被终止了
nginx 3220 0.0 1.9 374796 20040 ? S 00:44 0:00 php-fpm: pool www
nginx 3221 0.0 1.8 374376 18384 ? S 00:44 0:00 php-fpm: pool www
root 3512 0.0 0.0 112660 664 pts/0 R+ 03:47 0:00 grep --color=auto nginx
2、指定用户名来杀死进程,一定要注意,不要使用root用户
#****本想杀死nginx这个用户的所有进程,结果没杀死,这里没搞懂,所以这里暂时不要使用******
[root@localhost ~]# ps -aux|grep nginx
nginx 2300 0.0 1.8 374376 18384 ? S 03:28 0:00 php-fpm: pool www
nginx 2301 0.0 1.8 374376 18384 ? S 03:28 0:00 php-fpm: pool www
root 2308 0.0 0.1 45896 1148 ? Ss 03:29 0:00 nginx: master process /apps/nginx/sbin/nginx
nginx 2309 0.0 0.2 46756 2192 ? S 03:29 0:00 nginx: worker process
root 2311 0.0 0.0 112660 976 pts/0 R+ 03:29 0:00 grep --color=auto nginx
[root@localhost ~]#
[root@localhost ~]# pkill -u nginx
[root@localhost ~]#
[root@localhost ~]# ps -aux|grep nginx
root 2308 0.0 0.1 45896 1308 ? Ss 03:29 0:00 nginx: master process /apps/nginx/sbin/nginx
nginx 2317 0.0 1.8 374376 18384 ? S 03:29 0:00 php-fpm: pool www
nginx 2318 0.0 1.8 374376 18384 ? S 03:29 0:00 php-fpm: pool www
nginx 2319 0.0 0.2 46756 2192 ? S 03:29 0:00 nginx: worker process
root 2321 0.0 0.0 112660 976 pts/0 S+ 03:29 0:00 grep --color=auto nginx
3、通过终端名称来终止进程
[root@localhost ~]# w
03:33:12 up 16 min, 2 users, load average: 0.00, 0.02, 0.05
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 03:17 0.00s 0.20s 0.00s w
root pts/1 03:31 8.00s 0.10s 0.07s top #该终端正在进行top命令
[root@localhost ~]#
[root@localhost ~]#
[root@localhost ~]# pkill -t pts/1 #杀死指定终端的进程,切换到另一个终端,top命令被结束了
4、通过指定用户名来终止进程,也就是踢掉用户一定要注意,不要使用root用户,这样必须要重启
#终止非root用户
[root@localhost ~]# w
03:35:48 up 19 min, 2 users, load average: 0.10, 0.04, 0.05
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 03:17 4.00s 0.21s 0.00s w
skip pts/2 03:35 13.00s 0.01s 0.01s -bash #skip用户登录了终端
[root@localhost ~]#
[root@localhost ~]# pkill -u skip #通过用户名来终止skip终端,skip的终端被强制退出了。
#终止其他以root用户登录的终端,使用-9加-t
[root@localhost ~]# w
03:41:09 up 24 min, 2 users, load average: 0.00, 0.01, 0.05
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 03:17 5.00s 0.22s 0.00s w
root pts/1 03:40 18.00s 0.01s 0.01s -bash
[root@localhost ~]#
[root@localhost ~]# pkill -9 -t pts/1 #这样,该终端就会被终止
[root@localhost ~]# w
03:41:27 up 25 min, 1 user, load average: 0.00, 0.01, 0.05
USER TTY LOGIN@ IDLE JCPU PCPU WHAT
root pts/0 03:17 7.00s 0.23s 0.01s w