这就是我想要做的:我想从ps获得一个树形格式的进程列表(当你做ps auxwwf ),但是只有我拥有的进程或者是我拥有的进程的祖先。 所以如果我在树上拥有一个bash的过程,并且拥有root的祖先,那么除了我自己所拥有的祖先外,我还想看看那些祖先的祖先。 我不想看到任何不包含我拥有的进程的进程树。
有没有办法做到这一点与PS的正常选项,或者我需要编写一个脚本来parsing输出?
这不会很快,但它似乎有诀窍:
# 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)
尝试ps -ejH ,显示基于父子链接的进程树。
编辑
只看到你的进程
ps -fjH -u myname
这取决于你的操作系统,但基于你给的ps命令,我认为这可能工作:
ps --user dirtside -uxxf
我承担这一点,使用迭代,而不是recursion(不用担心,你会溢出你的堆栈):
ps_backtrace.sh