В зависимости от вашего Linux
дистрибутива (в частности, пользовательских инструментов, которые у вас есть - GNU
, busybox
и т. Д.) Вам может повезти с одним из следующих вариантов:
$ tail -f /var/log/messages
$ tailf /var/log/messages
$ less +F /var/log/messages
Для каждого процесса в дереве укажите имя процесса, имя , и имя владельца процесса.
Вам нужен способ получить эту информацию, возможно, на основе PID ("идентификационный номер процесса"), поскольку PPID (идентификатор родительского процесса) приведет вас вверх по дереву к родительскому процессу. Подсказка: PID текущего процесса bash находится в $BASHPID
(или $$
).
Нарисуйте дерево процессов и родительских процессов, начиная с вашей оболочки и до самого ядра
Разгадка №2: Ядро запускает только один процесс - демон init (традиционно называется init
, но может называться и по-другому). PID этого процесса равен 1, а его родительского процесса - 0. Все остальное является потомками init, так что именно к нему ведет ваше дерево.
Технически, я не думаю, что вас просят нарисовать дерево, вас просят нарисовать цепочку, хотя концептуально эта цепочка - путь через дерево (вспомните файл путь, который является серией/цепочкой каталогов, которые являются частью большего дерева каталогов). Вы прослеживаете путь через ветви этого концептуального дерева к "корню" дерева (деревья в информатике обычно представляются перевернутыми по сравнению с реальным деревом, где основание/корень находится наверху, а ветви разветвляются вниз).
root
/ \
/\ /\
/\/\ /\/\
Это похоже на задание для pstree
:
pstree -npu
pstree
→ отображать процессы в древовидном формате, начиная (правильно) с init
-n
→ сортировать по PID (Process ID), а не по алфавиту-u
→ отображать владельца (пользователя, который его запустил)-h
выделяет текущий процесс и его предков)Полное руководство для дополнительных опций можно найти здесь → http://www. linfo.org/pstree.html или локально на странице man
/info
вашего траста: man 1 pstree