Как написать сценарий оболочки для печати PID, владельца и имени процесса с использованием специальной переменной $$ в качестве параметра сценария

Сценарий должен представить команду pstree -hsup $$ . Я пробовал много разных способов, но не смог Я не могу напечатать такой вывод

28348 (bash,root)
28347 (su,root)
28346 (sudo,root)
14085 (bash,user)
14083 (lxterminal,user)
    1 (Systemd,root)
-2
задан 11 June 2021 в 18:47

1 ответ

ps -o ppid выведет pid родительского процесса. Итак, начните с текущего pid и спросите родителя, затем его родителя и так далее.

#! /bin/bash
pid=$1
while ((pid)) ; do
    ps -h -o 'pid,comm,euser' $pid \
        | sed -E 's/^( *[0-9]+ )([^ ]+) *([^ ]+)/\1(\2,\3)/'
    pid=$(ps -h -o ppid $pid)
done

Вы хотите вывести pid, команду и эффективного пользователя (или, может быть, реального пользователя?). Укажите их в -o и используйте sed для переформатирования вывода. Здесь мы захватываем три строки без пробелов и вставляем круглые скобки и запятую там, где это необходимо.

2
ответ дан 28 July 2021 в 11:29

Другие вопросы по тегам:

Похожие вопросы: