监视linux进程

有没有一个select的Linux top命令,我可以按名称过滤进程?

例如,我只想监视python进程(有几个),我想要做一些像top -option "python"东西。

当你需要进程的信息时,答案总是ps

这很简单,但它有一个荒谬的select。

试试这个:

 ps -eo pcpu,pid,user,args | sort -k 1 -r | head -10 

应该给你的前10名,由CPU使用。

这近似于top的输出:

 watch 'ps axo pid,user,pri,nice,vsz,rsz,size,s,pcpu,pmem,time,cmd|grep "[p]ython\|PID USER"' 

你总是可以做“顶部| greppython”,但我假设你想要更dynamic的东西

我的Perl技巧是基础知识,但要得到一个名字过滤的真正的顶部,保存这个代码到一个名为topn.pl的文件:

 #!/usr/bin/perl shift @ARGV; $name = shift @ARGV; @pids = `/bin/ps -eo pid,user,args | /bin/grep $name | /bin/grep -v grep | /usr/bin/tr -s " " `; $arg = ""; foreach (@pids) { $_ =~ /^\s([0-9]+)\s/; $pid = $1; $arg .= " p $pid " if $pid != ""; } exec("/usr/bin/top $arg @ARGV"); 

用法: topn.pl -n FOO c 2其中FOO是进程名称是grep。 其余的parameter passing到顶部。

顶部接受最多20个PID作为参数。