Mar*_*dir 3 linux bash top-command
我想使用top以按进程名称监视多个进程.我已经知道做了$ top -p $(pgrep -d ',' <pattern>)但top只限制了20个pid.有没有办法允许20多个pids?
我是否必须结合ps并watch获得类似的结果?
来自top/top.c:
if (Monpidsidx >= MONPIDMAX)
error_exit(fmtmk(N_fmt(LIMIT_exceed_fmt), MONPIDMAX));
Run Code Online (Sandbox Code Playgroud)
(LIMIT_exceed_fmt您收到的错误消息在哪里).
并在top/top.h:
#define MONPIDMAX 20
Run Code Online (Sandbox Code Playgroud)
我将这个数字改为80,这似乎没问题.不确定为什么这个硬编码限制如此之低.
因此,如果手动编译procps-ng是一个选项,那么你可以这样做.您不需要更换系统顶部(或需要root权限),您可以将它放在homedir中.
另一种解决方法可能是使用tmux或screen多个top实例.
另一种可能的解决方案可能是使用ps循环,即.
#!/bin/sh
while :; do
clear
ps $*
sleep 1
done
Run Code Online (Sandbox Code Playgroud)
将其调用为: ./psloop.sh 42 666
您可能需要添加更多标志以ps获取其他信息.还要注意这个效率较低,因为它每秒会调用3个二进制文件.
| 归档时间: |
|
| 查看次数: |
597 次 |
| 最近记录: |