С точки зрения системы, приложения выполняются в одном или нескольких процессах, которые потребляют системные ресурсы, такие как память и процессорное время. Мы опишем некоторые команды для отслеживания этих процессов и управления ими, а, следовательно, и приложениями, которым они принадлежат.
Команда ps выдает, согласно указанному вами критерию, список процессов, которые выполняются в системе в настоящий момент.
Запуск ps без аргументов покажет только те процессы, что были запущены вами, и привязаны к используемому вами терминалу:
$ ps PID TTY TIME CMD 18614 pts/3 00:00:00 bash 20173 pts/3 00:00:00 ps
Процессы контролируются с помощью сигналов. Команды kill и killall используются для того, чтобы посылать сигналы процессам. Команда kill требует в качестве аргумента номер процесса, а команда killall требует имя процесса.
![]() |
Замечание |
---|---|
Помните, пожалуйста, что разные процессы по-разному реагируют на одни и те же сигналы. При послании сигнала вы не можете a priori ожидать, что процесс поведет себя так, как вы думаете. |
kill <номер_процесса>
killall <имя_процесса>
Сигналы можно указывать по имени или по номеру. Чтобы увидеть список доступных сигналов, выполните kill -l. Наиболее часто используются следующие сигналы:
TERM
или
15
: этот сигнал посылается по умолчанию, если
имя или номер не заданы. Он элегантно прекращает
процесс.
STOP
или
19
: этот сигнал используется для временной
приостановки процесса. Для возобновления работы ему следует послать сигнал
CONT
или
18
.
KILL
или
9
: этот сигнал используется для принудительного
прерывания процесса. Его часто используют, когда процесс
больше ни на что не отвечает (он
«заморожен»). Прекращение работы происходит
внезапно.
kill 785: просит процесс под
номером
785
завершить работу, дав ему
шанс произвести все требуемые завершающие
действия;
kill -KILL 785: вынуждает процесс
под номером
785
завершиться, не предоставляя ему никаких возможностей
произвести завершающие операции. Процесс прекращает
работу немедленно;
killall -TERM make: просит прекратить работу все процессы
по имени
make
, запущенные текущим пользователем.
Что бы ни
случилось, вы можете контролировать только
свои процессы (если только вы не
root
), так что не надо волноваться о
процессах других пользователей,
на них
вы никак не повлияете.
top - это программа, одновременно выполняющая роль ps и kill, которая также используется для отслеживания процессов в реальном времени, выдавая информацию об использовании CPU и памяти, времени выполнения, и так далее, как показано на Рисунок 19.1, «Отслеживание процессов с помощью top».
Утилита top управляется исключительно клавиатурой. Команды зависят от регистра. Справку можно вызвать нажатием клавиши h. Наиболее полезными командами являются:
k: послать сигнал процессу. У вас
спросят
PID процесса, за которым следует ввести номер или
имя посылаемого сигнала ( по умолчанию это
TERM
или
15
);
M: упорядочить вывод процессов по
количеству потребляемой памяти (поле
%MEM
);
P: упорядочить вывод процессов по потребляемому времени
CPU (поле
%CPU
): по умолчанию процессы сортируются
именно так;
u: отображает процессы конкретного пользователя. Вас попросят ввести имя пользователя, а не его UID. Если имя не введено, будут показаны все процессы;
i: по умолчанию отображаются все процессы, даже
спящие. Этой командой
выводятся только выполняющиеся процессы (процессы,
поле
STAT
которых показывает
R
,
Running), и никакие
другие. Повторное применение этой команды возвращает вас к
отображению всех процессов.