Назад | Перейти на главную страницу

Может ли 'ps' показать мне только процессы, которыми я владею, а также всех их предков в древовидном формате?

Вот что я хочу сделать: я хочу получить древовидный список процессов из пс (как когда ты делаешь ps auxwwf), но только процессов, которые либо принадлежат мне, либо являются предками процессов, принадлежащих мне. Так что если у меня есть трепать процесс вниз по дереву, и у него есть предки, принадлежащие root, я хочу увидеть этих корневых предков в дополнение к тем, которые у меня есть. я делаю не хотите видеть любые деревья процессов, которые не содержат процессов, принадлежащих мне.

Есть ли способ сделать это с помощью псобычные параметры, или мне нужно написать сценарий для анализа вывода?

Пытаться ps -ejH который отображает дерево процессов, основанное на связях отца и сына.

редактировать

Только видеть ваш процессы

  ps -fjH -u myname

Это будет не очень быстро, но вроде как помогает:

# 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 я думаю, что это может сработать:

ps --user dirtside -uxxf

Я использую итерацию вместо рекурсии (не беспокойтесь, что вы переполните свой стек):

ps_backtrace.sh