首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >linux中的顶级-c命令,用于根据进程名过滤列出的进程

linux中的顶级-c命令,用于根据进程名过滤列出的进程
EN

Stack Overflow用户
提问于 2012-08-22 22:39:33
回答 8查看 223.8K关注 0票数 182
代码语言:javascript
复制
top -c

顶部列出了所有进程,有一些很好的选项可以使用选项-u按用户名过滤进程,但我想知道是否有任何简单的方法可以根据顶部输出的命令列中列出的进程名称来过滤进程。

例如,我想要进程名的top -some选项-substring,并且top显示的pids在其命令名中只包含此子字符串

EN

回答 8

Stack Overflow用户

回答已采纳

发布于 2012-08-22 22:49:20

使用pgrep获取匹配命令行的pid:

代码语言:javascript
复制
top -c -p $(pgrep -d',' -f string_to_match_in_cmd_line)

top -p需要一个逗号分隔的pids列表,所以我们在pgrep中使用-d','。pgrep中的-f标志使其匹配命令行,而不是程序名。

票数 253
EN

Stack Overflow用户

发布于 2014-06-18 04:50:59

@perreal的命令工作得很好!如果你忘记了,试着分两步…

示例: filter top仅显示名为yakuake的应用程序:

代码语言:javascript
复制
$ pgrep yakuake
1755

$ top -p 1755

有用的顶级交互命令'c‘:切换完整路径与命令名'k’:kill by PID 'F‘:filter by...使用箭头选择...然后按“%s”设置排序

下面的答案也很好。我今天一直在找它,但是找不到。谢谢

票数 13
EN

Stack Overflow用户

发布于 2014-12-26 14:54:27

在StackOverflow上寻找了这么多答案后,我还没有看到一个符合我需求的答案。

也就是说,让top命令使用给定的关键字保持刷新,当新进程产生时,我们不必一次又一次地使用CTRL+C / top。

因此我做了一个新的..。

这就是不需要重启的版本。

代码语言:javascript
复制
__keyword=name_of_process; (while :; do __arg=$(pgrep -d',' -f $__keyword); if [ -z "$__arg" ]; then top -u 65536 -n 1; else top -c -n 1 -p $__arg; fi; sleep 1; done;)

修改__keyword,它应该可以工作。(Ubuntu 2.6.38测试)

2.14.2015添加:上面的代码缺少系统工作负载部分。对于关心“平均负载”部分的人来说:

代码语言:javascript
复制
__keyword=name_of_process; (while :; do __arg=$(pgrep -d',' -f $__keyword); if [ -z "$__arg" ]; then top -u 65536 -n 1; else top -c -n 1 -p $__arg; fi; uptime; sleep 1; done;)
票数 8
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/12075591

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档