2. Информация о процессах: ps и pstree

Эти две команды выводят список процессов, запущенных на данный момент в системе, согласно установленным вами критериям. pstree выводит информацию в более понятном виде по сравнению с ps -f.

2.1. ps

Запуск ps без аргументов покажет только те процессы, что были запущены вами, и которые привязаны к используемому вами терминалу:

$ ps
       PID TTY          TIME CMD
     18614 pts/3    00:00:00 bash
     20173 pts/3    00:00:00 ps

Как и многие утилиты UNIX®, ps обладает рядом полезных опций, наиболее общими из которых являются:

  • a: выводит процессы, запущенные всеми пользователями;

  • x: выводит процессы без управляющего терминала или с управляющим терминалом, но отличающимся от используемого вами;

  • u: выводит для каждого из процессов имя запустившего его пользователя и время запуска.

Существует ещё множество других опций. За дополнительной информацией обращайтесь к странице руководства ps(1).

Вывод ps разделен на несколько полей: чаще всего вас будет интересовать поле PID, содержащее идентификатор процесса. Поле CMD содержит имя выполняемой команды. Чаще всего команда ps вызывается так:

$ ps ax | less

При этом вы получите список всех запущенных на данный момент процессов, что даст вам возможность определить один или несколько проблемных процессов и уничтожить их.

2.2. pstree

Команда pstree выводит процессы в форме дерева. Основным преимуществом является то, что вы сразу можете увидеть родительские процессы: если вам нужно уничтожить целую серию процессов, а они все происходят от одного родителя, вы можете просто убить этот родительский процесс. Вам придется воспользоваться опцией -p для вывода PID всех процессов и опцией -u для вывода имени пользователя, запустившего процесс. Т.к. дерево зачастую довольно большое, вам потребуется запустить pstree следующим образом:

$ pstree -up | more

При этом вы получите обзор всей структуры дерева процессов.