Достаточно часто необходимо понять «родословную» процессов. Кто кого породил. Кто чей потомок.
Получить дерево процессов можно при помощи двух программ:
У ps можно включить дополнительный параметр f (параметр указывается без тире). Он заставляет программу символами псевдографики показывать взаимоотношения потомок – родитель.
Ниже показана небольшая часть информации, выводимая программой
ps –e f
2647 ? Ss 0:00 /usr/sbin/acpid
2665 ? Ss 0:01 /usr/sbin/sshd
31539 ? Ss 0:00 \_ sshd: user [priv]
31541 ? S 0:00 \_ sshd: user@pts/1
31542 pts/1 Ss 0:00 \_ -bash
2189 pts/1 R+ 0:00 \_ ps -e f
2696 ? Ss 0:27 clamd
2731 ? S 0:00 /bin/sh /usr/bin/mysqld_safe --datadir=/var/lib/mysql
2791 ? Sl 4:55 \_ /usr/libexec/mysqld --basedir=/usr --datadir=/var
Pstree программа незамысловатая, она просто выводит на экран «дерево» процессов.
$ pstree | head -20
init-+-acpid
|-atd
|-auditd-+-audispd---{audispd}
| `-{auditd}
|-automount---4*[{automount}]
|-avahi-daemon---avahi-daemon
|-clamav-milter---2*[{clamav-milter}]
|-clamd
|-crond
|-cyrus-master-+-18*[imapd]
| `-lmtpd
|-dbus-daemon
|-dspam
|-events/0
|-events/1
|-gam_server
|-gpm
|-hald---hald-runner---hald-addon-acpi
|-httpd---2*[httpd]
|-idled
$
Необходимо отметить, что программа pstree, в отличии от ps, не входит в стандарт POSIX.