pkill命令详解

 

基础命令学习目录首页html

  

 原文连接:http://www.mamicode.com/info-detail-2315063.htmllinux

一:含义:

是ps命令和kill命令的结合,按照进程名来杀死指定进程,pkill和killall应用方法差很少,也是直接杀死运行中的程序;若是您想杀掉单个进程,请用kill来杀掉。正则表达式

二:语法:

pkill(选项)(参数)bash

三:选项:

● -c ctidlist 仅匹配列表中列出的ID的进程。
● -d delim 指定每个匹配的进程ID之间分割字符串。若是没有 -d 选项指定,默认的是新行字符。-d 选项仅在pgrep命令中有效。
● -f正则表达式模式将执行与彻底进程参数字符串 (从/proc/nnnnn/psinfo文件的pr_psargs字段得到)匹配。若是没有 -f 选项,表达式仅对执行文件名称(从/proc/nnnnn/psinfo文件pr_fname字段得到)匹配。
● -g pgrplist仅匹配进程组ID在给定列表中的进程。若是组0包括在列表中,这个被解释为pgrep或者pkill进程的组ID。
● -G gidlist仅匹配真实组ID在给定列表中的进程。每个组ID可使用组名称或者数字的组ID指定。
● -J projidlist匹配项目ID在给定列表中的进程。每个项目ID可使用项目的名称或者数字项目ID来指定。
● -l长格式输出。输出每个匹配进程的名称连同进程ID。进程名称从pr_psargs 或者 pr_fname字段得到,依赖于-f选项是否指定。-l选项仅在pgrep命令中有效。
● -n匹配最新(最近生成的)符合全部其它匹配条件的进程。不能和-o选项一块儿使用。
● -o匹配最旧(最先生成的)符合全部其它匹配条件的进程。不能和-n选项一块儿使用。
● -P ppidlist 仅匹配给定列表中父进程ID的进程。
● -s sidlist 仅匹配进程会话ID在给定列表中的进程。若是ID 0在列表中,这个解释为pgrep或者pikill进程的会话ID。
● -t termlist 仅匹配与给定列表中终端关联的进程。每个终端指定为在/dev中终端设备路径名称的后缀。例如term/a 或者 pts/0。
● -T taskidlist 仅匹配在给定列表中任务ID的进程。若是ID 0包括在列表中,这个解释为pgrep或者pikill进程的会话ID。
● -u euidlist 仅匹配有效用户ID在给定列表中的进程。每一个用户ID能够经过一个登陆名称或者数字的用户ID指定。
● -U uidlist 仅匹配真实的用户ID在给定列表中的进程。每一个用户ID能够经过一个登陆名称或者数字的用户ID指定。
● -v 反向匹配。匹配全部的进程除了符合匹配条件的。
● -x 仅认为进程其参数字符串或者执行文件名称正确匹配规定模式是匹配的进程。模式被认为是准确的当全部在进程参数字符串或者可执行文件名称的字符匹配模式。
● -z zoneidlist 仅匹配区域ID在给定列表中的进程。每个区域ID可使用一个区域名称或者一个数字的区域ID指定。这个选项仅在全局区域中执行有效。若是pkill程序用来往其它区域的进程发信号,进城必须宣称{PRIV_PROC_ZONE}特权。
● -signal 指定发往每个匹配进程的信号。若是没有指定,SIGTERM 是默认的信号。-signal仅在pkill命令中做为第一个选项有效。信号能够是在signal.h中定义的没有SIG前缀的一个符号名字,也但是一个相应的信号数值。服务器

四:参数:

进程名称:指定要查找的进程名称,同时也支持相似grep指令中的匹配模式post

五:实例:

技术分享图片

技术分享图片
技术分享图片
技术分享图片

pkill详解学习

 

 执行pkill -u root以后服务器连不上也访问不了了。ui

例1url

[root@redhat ~]# pkill -t tty1     #杀死终端1下的全部进程 

[root@Centos ~]# pkill -kill -t pts/2   #踢用户

[root@redhat ~]# pkill -9 6985     #完全杀死进程

[root@redhat ~]# pkill -u tank   #杀死指定用户的全部进程

[root@redhat ~]# pkill -vu root #杀死不属于root用户的全部进程

 

 

操做命令行

支持以下操做:
pattern
指定一个扩展正则表达式(Extended Regular Expression (ERE))模式来匹配可执行文件名称或者完整的进程参数字符串。ERE语法的完整描述参看regex(5)。

例子

例子1 得到一个进程ID

得到sendmail的进程ID:

example% pgrep -x -u root sendmail
283

例子2 终止一个进程

终止最近生成的xterm:

example% pkill -n xterm

Exit Status

以下退出值被返回:

0 一个或者多个进程被匹配。
1 没有进程被匹配。
2 指定了无效的命令行参数。
3 出现一个致命的错误。

 

想从终端快速踢掉系统中其余登陆者,能够先用w命令查看当前全部登陆信息,并肯定本身所在终端号。

 

[root@gateway ~]# w

 10:14:52 up  6:01,  3 users,  load average: 0.00, 0.01, 0.05

USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT

root     tty1                      10:10   36.00s  0.23s  0.23s -bash

gentoo   pts/0    10.1.1.110       10:14   12.00s  0.07s  0.07s -bash

root     pts/1    192.168.10.198   09:46    4.00s  0.19s  0.01s w

[root@gateway ~]# 

 

命令显示中有“w”的行所指明的TTY值就是你当前登陆的终端号(pts/1),接下来用pkill命令按需求踢掉其余的登录者便可,假如如今你想踢掉当前登陆用户gentoo,从上面的w命令看gentoo用户所在的终端号为(pts/0),使用以下pkill命令:

 

[root@gateway ~]# pkill -9 -t pts/0

 

再用w命令查看

 

[root@gateway ~]# w

 10:23:53 up  6:10,  2 users,  load average: 0.00, 0.01, 0.05

USER     TTY      FROM             LOGIN@   IDLE   JCPU   PCPU WHAT

root     tty1                      10:10    9:37   0.23s  0.23s -bash

root     pts/1    192.168.10.198   09:46    1.00s  0.24s  0.01s w

[root@gateway ~]# 

 

登陆用户gentoo就已经被踢下去了。

 

 

命令格式:

pkill -signal -t SIGNAL

 

-signal

--signal signal

   Defines the signal to send to each matched process.  Either the numeric or the symbolic

   signal name can be used.  (pkill only.)

-t, --terminal term,...

   Only match processes whose controlling terminal is listed.  The terminal name should be

   specified without the "/dev/" prefix.

SIGNAL

   Signal     Value     Action   Comment

  ────────────────────────────────────

   SIGHUP        1       Term    Hangup detected on controlling terminal

                                 or death of controlling process

   SIGINT        2       Term    Interrupt from keyboard

   SIGQUIT       3       Core    Quit from keyboard

   SIGILL        4       Core    Illegal Instruction

   SIGABRT       6       Core    Abort signal from abort(3)

   SIGFPE        8       Core    Floating point exception

   SIGKILL       9       Term    Kill signal

   SIGSEGV      11       Core    Invalid memory reference

   SIGPIPE      13       Term    Broken pipe: write to pipe with no readers

   SIGALRM      14       Term    Timer signal from alarm(2)

   SIGTERM      15       Term    Termination signal

   SIGUSR1   30,10,16    Term    User-defined signal 1

   SIGUSR2   31,12,17    Term    User-defined signal 2

   SIGCHLD   20,17,18    Ign     Child stopped or terminated

   SIGCONT   19,18,25    Cont    Continue if stopped

   SIGSTOP   17,19,23    Stop    Stop process

   SIGTSTP   18,20,24    Stop    Stop typed at terminal

   SIGTTIN   21,21,26    Stop    Terminal input for background process

   SIGTTOU   22,22,27    Stop    Terminal output for background process

本文出自 “望云眷蜀” 博客,请务必保留此出处http://wyjs6.blog.51cto.com/465920/1941180

pkill命令用法之 - 从终端踢掉其余登陆者

标签:linux   命令   pkill   

原文地址:http://wyjs6.blog.51cto.com/465920/1941180

相关文章
相关标签/搜索