5

Я могу сделать ps -o "pid,ppid,args" -p my_pid чтобы найти родителя my_pid .

Я могу продолжить ps -o "pid,ppid,args" -p previously_found_ppid в цикле, пока не доберусь до ppid=1 .

Тем не менее, держу пари, что существует единственное решение для вызова, которое начинается с my_pid и перечисляет всех его предков. Нечто обратное pstree которое начинается с родителя и перечисляет всех его потомков. Не могли бы вы сказать, доступна ли такая команда Unix/Linux?

1 ответ1

4

Похоже, pstree может делать то, что вы хотите, с его -s Показать родительские процессы указанного параметра процесса

$ pstree -s 5698 
init───mdm───mdm───init───at-spi-bus-laun───dbus-daemon

Или больше информации (аргументы) и красивее с опцией -a

mint@mint ~ $ pstree -s -a 5698 
init
  └─mdm
      └─mdm
          └─init --user
              └─at-spi-bus-laun
                  └─dbus-daemon --config-file=/etc/at-spi2/accessibility.conf ...

Или несколько вариантов вместе

$ pstree -s -p -a -G -l 5698 
init,1
  └─mdm,1994
      └─mdm,5358
          └─init,5379 --user
              └─at-spi-bus-laun,5691
                  └─dbus-daemon,5698 --config-file=/etc/at-spi2/accessibility.conf --nofork --print-address 3

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .