我看到了这个好问题:
并试图从中得到我想要的东西,但没有成功。
我经常想观察我的 maxima/lisp 进程,而不是运行 top/htop/etc 我想我可以只搜索“maxima.core”并使用从该搜索返回的 pid 作为 top 的“-p”标志的输入。如果它返回不止一个,那就没什么大不了的了。
1.) 如果我知道 PID,我可以使用这个:
top -p 10815 -o S -d 0
2.) 为了获取 PID,我这样做:
ps -fu <user> | pgrep -f maxima.core
它输出一个列表,例如
10814
11989
但尝试连接它们对我来说失败了。我的尝试主要围绕这一点:
<user>@<user> ~ $ top -o S -d 0 -p $(ps -fu <user> | pgrep -f maxima.core)
还尝试合并此结果:如何获取从两个或更一般的“n”开始的位置参数?
top -o S -d 0 -p "${(ps -fu <user> | pgrep -f maxima.core)[@]}"
但它抱怨替代性较差。
我非常依赖 bash。
答案1
如果您的版本pgrep
支持-d
( --delimiter
) 选项,您应该能够使用它来提供以逗号分隔的 PID 列表top
:
top -o S -d 0 -p "$(pgrep -d, -u <user> -f maxima.core)"