说明

  killall命令用于直接使用进程名称来终止进程

格式

  killall [option] [pname]

常用参数
  • -e:要求匹配进程名称(当进程名大于15个字符时有用)。默认情况下,进程名称的长度超过了15个字符,则无法使用整个名字(被溢出).使用-e参数的作用是忽略模糊匹配项。
  • -I:不区分大小写匹配
  • -g:终止属于该进程组的进程
  • -i:在终止进程之间询问是否确认
  • -l:列出所有已知的信号
  • -q:如果没有进程终止就不提示
  • -r:使用正则表达式匹配要终止的进程名称
  • -s:用指定的信号代替默认的信号
  • -u:终止指定用户的的进程
  • -w:等待所有被终止的进程死去。killall美妙都会检查一次呗终止的进程是否任然存在,仅仅在所有进程都死后才返回。注意:如果信号被忽略或者没有起作用,或者进程停留在僵尸状态,那么killall可能会永久的等待
示例
[root@localhost ~]# ps -aux|grep nginx
root       1580  0.0  0.1  45896  1108 ?        Ss   May27   0:00 nginx: master process /apps/nginx/sbin/nginx
nginx      1589  0.0  0.2  46756  2628 ?        S    May27   0:00 nginx: worker process
nginx      2168  0.0  2.1 374796 22004 ?        S    May27   0:00 php-fpm: pool www
nginx      2169  0.0  1.9 374792 19992 ?        S    May27   0:00 php-fpm: pool www
root       3203  0.0  0.0 112660   976 pts/0    S+   00:43   0:00 grep --color=auto nginx

[root@localhost ~]# killall nginx
[root@localhost ~]# killall nginx
nginx: no process found

[root@localhost ~]# 
[root@localhost ~]# /apps/nginx/sbin/nginx 
[root@localhost ~]# 

[root@localhost ~]# killall -w nginx
[root@localhost ~]# killall -w nginx
nginx: no process found