这是我想要做的:我想要从中获取一个树格式的进程列表附言(就像你做的那样ps auxwwf
),但仅限于我拥有的进程,或我拥有的进程的祖先。所以如果我拥有一个狂欢进程沿着树向下,并且它有根拥有的祖先,除了我拥有的祖先之外,我还想查看那些根祖先。我确实不是想要查看不包含我拥有的任何进程的进程树。
有什么办法可以做到这一点附言的正常选项,还是我需要编写脚本来解析输出?
答案1
这不会很快,但是似乎可以解决问题:
# Bash, GNU ps
pidchain ()
{
if [[ -z $1 ]]; then
return;
fi;
if (( $1 == 0 )); then
return;
else
echo "$1";
pidchain $(ps -p $1 o ppid=);
fi
}
pids () {
ps o pid= -u $1 |
while read pid
do
pidchain $pid
done |
sort -nu
}
ps uxwwf -p $(pids username)
答案2
尝试ps -ejH
显示基于父子链接的进程树。
编辑
仅供观赏你的进程
ps -fjH -u myname
答案3
这取决于您的操作系统,但根据您给出的 ps 命令,我认为这可能会起作用:
ps --user dirtside -uxxf
答案4
我对此的看法是,使用迭代而不是递归(不必担心堆栈溢出):