监控 Linux 进程

监控 Linux 进程

Linux 命令中是否有一个选项top可以让我按名称过滤进程?

例如,我只想监控 python 进程(有几个),并且我想做类似的事情top -option "python"或类似的事情。

答案1

当你需要有关流程的信息时,答案总是ps

它很简单,但却拥有多得令人难以置信选项。

尝试一下这个:

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

应该会根据 CPU 使用率给你排名前 10 位。

答案2

这近似于的输出top

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

答案3

你可以随时执行“top | grep python”,但我假设你想要一些更动态的东西

答案4

我的 Perl 技能很基础,但为了获得按名称过滤的真正 Top,请将此代码保存到名为 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 的进程名称。其余参数传递给 top。

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

相关内容