Как найти список процессов из одной точки дерева в другую, используя pstree?
У меня есть pid, и я хочу знать имена процессов для каждого родителя вплоть до init.
Например, когда я набираю эту команду, которую ищу, я хочу видеть что-то вроде "init───sshd───bash───mypidprocess"
По умолчанию pstree распечатывает обратное, начиная с имени процесса вашего pid, оно идет вплоть до последнего потомка.
Как бы я сказал pstree рекурсивно распечатать родителей pid?
1 ответ
С GNUpstree
, вы можете использовать -H
опция выделения, чтобы выделить процесс и всех его предков, а затем просто отфильтровать выделение.
Но с портативной версией Фреда Хухтаpstree
Это то, что вы, вероятно, имеете на любой платформе, кроме linux, в действительности вам ничто не поможет. Конечно, вы можете разобрать все дерево, но было бы легче разобрать ps
выход (что к чему pstree
сам делает) напрямую. Или измените источник (GPL), чтобы делать то, что вы хотите.
Возможно, будет даже проще написать простую программу (на Python, C и т. Д.), Которая рекурсивно вызывает getppid
и затем получает информацию о процессе о получающемся родителе.