Как нарисовать дерево процессов от оболочки до ядра?

В зависимости от вашего Linux дистрибутива (в частности, пользовательских инструментов, которые у вас есть - GNU , busybox и т. Д.) Вам может повезти с одним из следующих вариантов:

$ tail -f /var/log/messages

$ tailf /var/log/messages

$ less +F /var/log/messages
1
08.12.2013, 05:42
2 ответа

Для каждого процесса в дереве укажите имя процесса, имя , и имя владельца процесса.

Вам нужен способ получить эту информацию, возможно, на основе PID ("идентификационный номер процесса"), поскольку PPID (идентификатор родительского процесса) приведет вас вверх по дереву к родительскому процессу. Подсказка: PID текущего процесса bash находится в $BASHPID (или $$).

Нарисуйте дерево процессов и родительских процессов, начиная с вашей оболочки и до самого ядра

Разгадка №2: Ядро запускает только один процесс - демон init (традиционно называется init, но может называться и по-другому). PID этого процесса равен 1, а его родительского процесса - 0. Все остальное является потомками init, так что именно к нему ведет ваше дерево.

Технически, я не думаю, что вас просят нарисовать дерево, вас просят нарисовать цепочку, хотя концептуально эта цепочка - путь через дерево (вспомните файл путь, который является серией/цепочкой каталогов, которые являются частью большего дерева каталогов). Вы прослеживаете путь через ветви этого концептуального дерева к "корню" дерева (деревья в информатике обычно представляются перевернутыми по сравнению с реальным деревом, где основание/корень находится наверху, а ветви разветвляются вниз).

          root
         /    \
        /\    /\
       /\/\  /\/\
3
29.04.2021, 00:44

Это похоже на задание для pstree:

pstree -npu

  • pstree → отображать процессы в древовидном формате, начиная (правильно) с init
  • -n → сортировать по PID (Process ID), а не по алфавиту
  • -u → отображать владельца (пользователя, который его запустил)
  • (дополнительно: -h выделяет текущий процесс и его предков)

Полное руководство для дополнительных опций можно найти здесь → http://www. linfo.org/pstree.html или локально на странице man/info вашего траста: man 1 pstree

1
29.04.2021, 00:44

Теги

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