简单了解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分开,默认的分割字符串是一个新行。对于每个属性选项,用户可以在命令行上指定一个以逗号分割的可能值的集合。例如,
代码如下:
匹配真实组ID是other或者是daemon的进程。如果多个条件被指派,这些匹配条件按逻辑与”AND”规则运算。例如,
代码如下:
匹配进程它的属性是:(真实的组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:
代码如下:
例子2 终止一个进程
终止最近生成的xterm:
代码如下:
如下退出值被返回:
0 一个或者多个进程被匹配。1 没有进程被匹配。2 指定了无效的命令行参数。3 出现一个致命的错误。
例子3 用pkill命令踢出在线登录用户由于linux服务器允许多用户登录,公司很多人知道密码,工作造成一定的障碍所以需要有时踢出指定的用户#who 查出当前有那些终端登录(用 w 命令更详细)
代码如下:
我想踢出IP为82的登录,其对应的tty为pts/3
代码如下:
再次查看
代码如下:
已成功踢出
2. 分享目的仅供大家学习和交流,请不要用于商业用途!
3. 如果你也有好源码或者教程,可以到用户中心发布投稿,分享有金币奖励和额外收入!
4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务 请大家谅解!
5. 如有链接无法下载、失效或广告,请联系站长,可领回失去的金币,并额外有奖!
6. 如遇到加密压缩包,默认解压密码为"www.zyfx8.cn",如遇到无法解压的请联系管理员!
本站部分文章、资源来自互联网,版权归原作者及网站所有,如果侵犯了您的权利,请及时联系我站删除。免责声明
资源分享吧 » 简单了解Linux系统中pgrep与pkill命令的使用
常见问题FAQ
- 免费下载或者VIP会员专享资源能否直接商用?
- 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP介绍。
- 织梦模板使用说明
- 你下载的织梦模板并不包括DedeCMS使用授权,根据DedeCMS授权协议,除个人非盈利站点外,均需购买DedeCMS商业使用授权。购买地址: http://www.desdev.cn/service-dedecms.html