简单了解Linux系统中pgrep与pkill命令的使用

  pgrep, pkill – 查找或者发信号给进程通过名称和其它属性。

  语法

  pgrep [-flvx] [-n | -o] [-d delim] [-P ppidlist] [-g pgrplist] [-s sidlist] [-u euidlist] [-U uidlist] [-G gidlist] [-J projidlist] [-t termlist] [-T taskidlist] [-c ctidlist] [-z zoneidlist] [pattern]

  pkill [-signal] [-fvx] [-n | -o] [-P ppidlist] [-g pgrplist] [-s sidlist] [-u euidlist] [-U uidlist] [-G gidlist] [-J projidlist] [-t termlist] [-T taskidlist] [-c ctidlist] [-z zoneidlist] [pattern]

  说明

  pgrep程序检查在系统的中活动进程,报告进程属性匹配命令行上指定条件的进程的ID。每一个进程ID以一个十进制数表示,通过一个分割字符串和下一个ID分开,默认的分割字符串是一个新行。对于每个属性选项,用户可以在命令行上指定一个以逗号分割的可能值的集合。例如,

  代码如下:

  pgrep -G other,daemon

  匹配真实组ID是other或者是daemon的进程。如果多个条件被指派,这些匹配条件按逻辑与”AND”规则运算。例如,

  代码如下:

  pgrep -G other,daemon -U root,daemon

  匹配进程它的属性是:

  (真实的组ID是other或者是daemon) 与 (真实的用户ID是root或者是daemon)

  pkill函数和pgrep相同,除了匹配的进程被信号通知就像用kill(1)替代了pgrep的进程ID的输出。一个信号名称或者数字可以作为pkill的第一个命令行选项。

  选项

  支持下面的选项:The following options are supported:

  -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前缀的一个符号名字,也可是一个相应的信号数值。

  例子

  例子1 获得一个进程ID

  获得sendmail的进程ID:

  代码如下:

  example% pgrep -x -u root sendmail

  283

  例子2 终止一个进程

  终止最近生成的xterm:

  代码如下:

  example% pkill -n xterm

< p>Exit Status

  如下退出值被返回:

  0 一个或者多个进程被匹配。

  1 没有进程被匹配。

  2 指定了无效的命令行参数。

  3 出现一个致命的错误。

  例子3 用pkill命令踢出在线登录用户

  由于linux服务器允许多用户登录,公司很多人知道密码,工作造成一定的障碍

  所以需要有时踢出指定的用户

  #who 查出当前有那些终端登录(用 w 命令更详细)

  代码如下:

  # who

  root pts/0 2010-10-28 09:36 (192.168.1.236)

  root pts/2 2010-10-28 09:40 (192.168.1.27)

  root pts/3 2010-10-28 10:02 (192.168.1.82)

  root pts/4 2010-10-20 16:06 (192.168.1.244)

  我想踢出IP为82的登录,其对应的tty为pts/3

  代码如下:

  # pkill -kill -t pts/3

  再次查看

  代码如下:

  # who

  root pts/0 2010-10-28 09:36 (192.168.1.236)

  root pts/2 2010-10-28 09:40 (192.168.1.27)

  root pts/4 2010-10-20 16:06 (192.168.1.244)

  已成功踢出

(0)

相关推荐

  • Linux系统中chown和chmod命令用法

    linux系统中有很多的命令,但是用于文件的管理,最经常用就有chmod和chown两个命令,该怎么使用chmod和chown命令呢?下面我们就来看看详细的图文教程. 1.第一首先打开电脑的linux ...

  • Linux系统中怎么使用grep命令?

    在维护Linux系统时,我们常常需要在文本中搜索需要的东西,如果人为手动的去找那显然效率低下,那么如何才能快速找到所需要的文本呢?下面小编就以CentOS6.4系统为例为大家演示如何进行文本查找. 一 ...

  • 在linux系统中切换用户的命令

    在linux系统中怎么通过命令进行操作用户的切换,root为linux下的超级管理员佣有所有的权限. 操作方法 01 打开系统中的"终端命令框" 02 使用whoami命令查看当前 ...

  • 分析关于linux系统中出现的常用命令知识问题

    操作方法 01 在复杂的电脑中,有一种叫做linux的系统,它有着许多的作用,方面我们在电脑方面的使用.相信网友在不经意间按出来的命令,但是不懂其中的涵义,所以我们现在就来了解下linux系统基础常用 ...

  • Linux系统中一些内核管理命令总结

    Linux系统中一些内核管理命令总结

  • 简单讲解Linux系统中PS1默认提示符的设置

    PS1(是数字1而不是字母l),每个版本bash的PS1变量内的特殊符号可能有些小的差异,你可以先man bash 一下.下面是FC4环境下默认的特殊符号所代表的意义: \d :代表日期,格式为wee ...

  • 简单了解Linux系统中clock命令的使用方法

    clock 命令:设置或者显示硬件时间的近似值 必要参数--adjust 自动调整硬件时钟时间--debug 运行时,输出详细的处理过程--directisa 不通过设备文件/etc/rtc,直接对硬 ...

  • 简单了解Linux系统中rev命令与tac命令的用法

    revrev 显示最后一个字符显示到第一个字符.参数:无 tac用法:tac [选项]... [文件]...将每个指定文件按行倒置并写到标准输出.如果不指定文件,或文件为"-",则 ...

  • Linux系统中网络数据存储工具命令TcpDump的使用教程

    Linux中强大的网络数据采集分析工具——TcpDumptcpdump采用命令行方式,它的命令格式为:tcpdump [ -adeflnNOpqStvx ] [ -c 数量 ] [ -F 文件名 ][ ...