Как найти список процессов из одной точки дерева в другую, используя pstree?

У меня есть pid, и я хочу знать имена процессов для каждого родителя вплоть до init.

Например, когда я набираю эту команду, которую ищу, я хочу видеть что-то вроде "init───sshd───bash───mypidprocess"

По умолчанию pstree распечатывает обратное, начиная с имени процесса вашего pid, оно идет вплоть до последнего потомка.

Как бы я сказал pstree рекурсивно распечатать родителей pid?

1 ответ

Решение

С GNUpstree, вы можете использовать -H опция выделения, чтобы выделить процесс и всех его предков, а затем просто отфильтровать выделение.

Но с портативной версией Фреда ХухтаpstreeЭто то, что вы, вероятно, имеете на любой платформе, кроме linux, в действительности вам ничто не поможет. Конечно, вы можете разобрать все дерево, но было бы легче разобрать ps выход (что к чему pstree сам делает) напрямую. Или измените источник (GPL), чтобы делать то, что вы хотите.

Возможно, будет даже проще написать простую программу (на Python, C и т. Д.), Которая рекурсивно вызывает getppid и затем получает информацию о процессе о получающемся родителе.

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