- Linux дерево процессов tree
- ИМЯ
- ОБЗОР
- ОПИСАНИЕ
- ПАРАМЕТРЫ
- ФАЙЛЫ
- ДЕФЕКТЫ
- СМОТРИТЕ ТАКЖЕ
- How To Show a Processes Tree in Unix
- Showing processes tree with ptree
- Processes tree with pstree
- Showing processes tree with ps –forest
- See Also
- How to Show Process Tree in Linux
- Use the ps command to show the process tree
- Use the pstree command to show the process tree
- Use the tree command to show the process tree
- Use the htop utility to show the process tree
- Wrapping Up
Linux дерево процессов tree
ИМЯ
pstree - показывает дерево процессов
ОБЗОР
pstree [-a, --arguments] [-c, --compact-not] [-C, --color attr] [-g, --show-pgids] [-h, --highlight-all, -H pid, --highlight-pid pid] [-l, --long] [-n, --numeric-sort] [-N, --ns-sort ns] [-p, --show-pids] [-s, --show-parents] [-S, --ns-changes] [-t, --thread-names] [-T, --hide-threads] [-u, --uid-changes] [-Z, --security-context] [-A, --ascii, -G, --vt100, -U, --unicode] [pid, user] pstree -V, --version
ОПИСАНИЕ
pstree показывает выполняющиеся процессы в виде дерева. Корнем дерева является pid или init, если pid не указан. Если указано имя пользователя, то все показываемые процессы в дереве начинаются от процессов, принадлежащих этому пользователю. pstree визуально объединяет одинаковые ветви, заключая их в квадратные скобки и показывает перед ними количество повторов, например init-+-getty |-getty |-getty `-getty показывается как init---4*[getty] Если у родителя обнаружены дочерние нити процессов, то они показываются как имя процесс в фигурных скобках, например icecast2---13*[] Если pstree вызывается как pstree.x11, то в конце данных выводится приглашение пользователю нажать return и программа не завершается пока этого не будет сделано. Это полезно, если pstree запускается в xterminal. Некоторые параметры ядра или монтирования, такие как параметр hidepid для procfs, скрывают информацию для некоторых процессов. В этих ситуациях pstree пытается построить дерево без этой информации, отображая вместо имён процессов знаки вопроса.
ПАРАМЕТРЫ
-a Показывать аргументы командной строки. Если командная строка процесса затёрлась, то процесс показывается в скобках. Параметр -a неявно отключает сжатие процессов, но не нитей. -A Использовать ASCII-символы для рисования дерева. -c Не сжимать одинаковые поддеревья. По умолчанию поддеревья сжимаются везде где возможно. -C Color the process name by given attribute. Currently pstree only accepts the value age which colors by process age. Processes newer than 60 seconds are green, newer than an hour yellow and the remaining red. -g Показывать PGID. Идентификаторы групп процесса показываются десятичными числами в скобках после каждого имени процесса. -g неявно отключает сжатие. Если выводятся PID и PGID, то PID показывается первым. -G Использовать символы рисования линий от VT100. -h Подсветить текущий процесс и его предков. Ничего не происходит, если терминал не поддерживает подсветку или если текущий процесс или его потомки не показываются в поддереве. -H Подобен -h, но подсвечивается заданный процесс. В отличии от -h, pstree завершается ошибкой, если указан -H и подсветка недоступна. -l Показывать длинные строки. По умолчанию, строки обрезаются до значения из переменной окружения COLUMNS или до ширины экрана. Если ни одно из этого недоступно, то по умолчанию используется значение в 132 колонки. -n Сортировать процессы с одинаковым именем родителя по PID, а не по имени (числовая сортировка). -N Показывать отдельные деревья для каждой области имён заданного типа. Доступные типы: ipc, mnt, net, pid, time, user, uts. Обычные пользователи не имеют доступа к информации о процессах других пользователей, поэтому вывод будет ограниченным. -p Показывать идентификаторы пользователей. PID показывается десятичными числами в скобках после каждого имени процесса. -p неявно отключает сжатие. -s Показывать родителей указанного процесса. -S Показывать изменения областей имён. Подобен -N, вывод ограничен при запуске обычным пользователем. -t Показывать полные имена нитей, если доступны. -T Скрывать нити и показывать только процессы. -u Показывать изменения идентификаторов пользователей. Если uid процесса отличается от uid его родителя, то показывается новый uid в скобках после имени процесса. -U Использовать символы рисования линий UTF-8 (Юникод). В Linux 1.1-54 и новее режим UTF-8 включается на консоли командной echo -e ' 33%8' и выключается echo -e ' 33%@'. -V Показать информацию о версии. -Z Показывать текущие атрибуты безопасности процесса. Для систем SELinux используется контекст безопасности.
ФАЙЛЫ
/proc местонахождение файловой системы proc
ДЕФЕКТЫ
Некоторые наборы символов могут быть несовместимы с символами VT100.
СМОТРИТЕ ТАКЖЕ
ps(1), top(1), proc(5).
Источник
How To Show a Processes Tree in Unix
Showing your processes in a hierarchical list is very useful for confirming the relationship between every process running on your system. Today I’d like to show you how you can get tree-like processes lists using various commands.
Showing processes tree with ptree
In Solaris, there’s quite a few commands which make the life of any system administrator much easier, they’re the process commands (p-commands). One of them which I particularly like is the ptree command which shows you a list of processes. As you run the command, you get a hierarchical list of all the processes running on your Solaris system, along with process IDs (PIDs). To me, this is a very useful command, because it shows you how exactly each process relates to others in your system. Here’s a fragment of the ptree output:
bash-3.00$ ptree 7 /lib/svc/bin/svc.startd 250 /usr/lib/saf/sac -t 300 268 /usr/lib/saf/ttymon 260 -sh 5026 -csh 9 /lib/svc/bin/svc.configd 107 /usr/lib/sysevent/syseventd 136 /usr/lib/picl/picld 140 /usr/lib/crypto/kcfd 159 /usr/sbin/nscd 227 /usr/sbin/rpcbind 234 /usr/lib/nfs/statd 235 /usr/sbin/keyserv 236 /usr/lib/netsvc/yp/ypserv -d 237 rpc.nisd_resolv -F -C 8 -p 1073741824 -t udp 241 /usr/lib/nfs/lockd 247 /usr/lib/netsvc/yp/ypbind 263 /usr/lib/utmpd 286 /usr/sadm/lib/smc/bin/smcboot 287 /usr/sadm/lib/smc/bin/smcboot 288 /usr/sadm/lib/smc/bin/smcboot
Processes tree with pstree
In most Linux distributions, you can find a pstree command, very similar to ptree. That’s how you may use it (-p is an option to show PIDs and -l uses long output format):
ubuntu$ pstree -pl init(1)─┬─NetworkManager(5427) ├─NetworkManagerD(5441) ├─acpid(5210) ├─apache2(6966)─┬─apache2(2890) │ ├─apache2(2893) │ ├─apache2(7163) │ ├─apache2(7165) │ ├─apache2(7166) │ ├─apache2(7167) │ └─apache2(7168) ├─atd(6369) ├─avahi-daemon(5658)───avahi-daemon(5659) ├─bonobo-activati(7816)───(7817) .
Showing processes tree with ps –forest
ps command found in Linux has a –forest option, which shows you a tree structure of processes. The best in my experience is to use it like this:
ubuntu$ ps -aef --forest UID PID PPID C STIME TTY TIME CMD . 107 5473 1 0 10037 4600 0 Apr28 ? 00:00:02 /usr/sbin/hald root 5538 5473 0 5511 1288 0 Apr28 ? 00:00:00 \_ hald-runner root 5551 5538 0 6038 1284 0 Apr28 ? 00:00:01 \_ hald-addon-input: Listening on /dev/input 107 5566 5538 0 4167 992 1 Apr28 ? 00:00:00 \_ hald-addon-acpi: listening on acpid socke root 5600 5538 0 6038 1272 1 Apr28 ? 00:00:15 \_ hald-addon-storage: polling /dev/scd0 (ev root 5476 1 0 10272 2532 0 Apr28 ? 00:00:00 /usr/sbin/console-kit-daemon root 5627 1 0 12728 1176 1 Apr28 ? 00:00:00 /usr/sbin/sshd root 9151 5627 0 17536 3032 0 10:53 ? 00:00:00 \_ sshd: greys [priv] greys 9162 9151 0 17538 1892 1 10:54 ? 00:00:00 \_ sshd: greys@pts/3 greys 9168 9162 0 5231 3820 1 10:54 pts/3 00:00:00 \_ -bash greys 9584 9168 0 3802 1124 0 11:27 pts/3 00:00:00 \_ ps -aeF --forest
This output is for demonstration purpose only, and so I’ve taken the first lines of the output out because they weren’t serving the purpose of this example very well. For thins fragment of the output you can see how you get all the vital information about each process. I really like this way of running the ps command. That’s it for today! Do you know any other neat way of looking at processes tree? Let me know!
See Also
Источник
How to Show Process Tree in Linux
Here are multiple commands that you can use to show the process tree in the Linux command line.
So you used the killall command and it killed the parent process making your hours of work at waste?
Well, I went through the same so it is always a better idea to check the parent processes, and listing the ongoing processes in tree manner is a good idea.
Use the ps command to show the process tree
The ps command in Linux is used to find ongoing processes in Linux and it also avails you to print the exact info in a tree manner.
You can use the —tree option to show the process tree with the ps command:
Use the pstree command to show the process tree
Personally, this is what I prefer to have as even without any options, it works fine.
But your distro may not have it pre-installed and if you’re on Ubuntu-based distros, the given command should do it:
Now, you can simply use the pstree command and it should give you the following output:
Similarly, you can use -p option to get process IDs:
Use the tree command to show the process tree
While the tree command is mainly used to list files recursively, you can look at /proc to get the process tree.
But it requires manual installation as it does not come pre-installed and if you’re on an Ubuntu-based distro, the following command should do it:
Now, you can use the given command to show the process tree:
It showed 23665 directories and 435044 files which bloated my terminal window and you can limit the info using -d option as it will only show directories:
And if you want to have full pathnames, you can use -f option:
Use the htop utility to show the process tree
htop is similar to the top command. And in my opinion, this is arguably the most interactive way of checking ongoing processes in the terminal.
But what if I tell you that it is also capable of showing a process tree too? But before that, let’s head over to the installation part.
It does not come pre-installed and if you are on an Ubuntu-based distro, the given command should do it:
Once you are done with the installation, use the given command to start htop:
Now, you just have to press F5 and the ongoing process will be shown to you in tree format:
Wrapping Up
One practical example of displaying the process tree is in checking whether your system uses systemd or not.
This was my take on how you can show the process tree using various utilities but there is a lot more you can do with those utilities. More on them later.
Источник