что-то не так, но хорошо бы проверить.
В состояние stopped
процесс переводится, только если другой процесс послал ему сигнал STOP. В этом случае он «замирает» и перестаёт исполняться до тех пор, пока не получит сигнал CONT (или не будет завершён). Если процесс в состоянии D, то сигнал игнорируется. В принципе, сигнал STOP процесс может игнорировать, но так делается очень редко.
Состояние zombie
возникает, когда процесс завершился, но его родитель «не подтвердил» это (не вызвал системный вызов wait
). Это делается для того, чтобы родительский процесс мог получить данные о том, как завершился процесс. т. е. процессы в состоянии zombie
уже не потребляют никаких ресурсов ни процессора, ни памяти. По этой же причине их нельзя принудительно завершить – они уже завершены.
Родительский процесс (PPID
) есть у каждого процесса в системе, если родительский процесс завершился, то им становится процесс с PID
1 (обычно это специальный процесс init
в системе, мы про него поговорим ниже), который выполняет wait
для всех таких процессов.
Посмотреть список процессов и их состояние можно с помощью команды ps
. У неё нелёгкая судьба, т. к. в разных вариантах популярных ОС (Unix, BSD, Solaris) исторически у неё было много разных, в том числе конфликтующих опций. В результате в Linux используется вариант GNU, который пытается их сочетать. В частности, есть опции, которые обязательно надо указывать с минусом впереди, а другие – наоборот только без минуса. Ниже самые полезные с нашей точки зрения:
К большинству комбинаций можно добавить w, тогда поле имени процесса (обычно программа с аргументами) будет шире. Если добавить дважды, то будет ещё шире, а если трижды, то ограничений на ширину не будет совсем.
Бывает удобно отслеживать активность процессов в реальном времени. Тут помогут команды top
и более новомодная htop
. Они показывают процессы в виде таблицы, отсортированной по одному полю, и обновляют её раз в 5 секунд (можно поменять интервал). При этом показываются только те процессы, которые поместились на экране, плюс некоторые общие данные о системе – загрузка процессора, памяти, loadaverage, число процессов в разных состояниях.
Можно переключать режимы отображения и сортировки. Для top
есть несколько горячих клавиш, их список можно получить, нажав 'h'. Наиболее удобные варианты сортировки и команды:
<Shift>+<P>
– сортировать процессы по использованию процессора;
<Shift>+<M>
– сортировать процессы по использованию памяти;
1
– показывать загрузку каждого ядра или суммарную;
k
– послать сигнал процессу;
r
– изменить приоритет процесса;
u
– фильтровать по пользователю;
q
– выход.
У htop
более дружественный интерфейс, по возможности она использует цветной вывод, загрузку процессора и памяти выводит в виде текстовых прогресс-баров, умеет организовывать процессы в деревья (и схлопывать их с одну строку, что иногда очень удобно). Клавиши управления выведены в нижней строке в стиле Norton Commander (Midnight Commander/FAR manager).
Мы