Иногда процессы зависают. Да, такие ситуации бывают и в ОС Linux. Центральный процесс может быть снят с помощью комбинации клавиш kill
. Чтобы отключить процесс по личному идентификатору (тот, что мы видели в квадратных скобках), используйте команду:
kill %n
Параметр n нужно заменить на номер процесса. Например, чтобы завершить работу фоновой программы man, нужно выполнить:
kill %1
Затем сразу же запустите команду jobs
. Вы должны увидеть на экране сообщение типа:
[1] + Terminated man ls
После повторного вызова команды jobs
программы man больше не будет.
Если вы хотите завершить работу процесса, который запущен не вами, но вы знаете его PID, то нужно выполнить команду:
kill n
Знак процента в этом случае не нужен. Тогда команда kill
ищет процесс, у которого PID равен указанному числу n
и посылает сигнал для завершения.
3.4.3. Просмотр процессов
С помощью команды jobs
вы можете увидеть только запущенные вами процессы. Чтобы полюбопытствовать, чем занимаются остальные пользователи в системе, нужно выполнить команду ps
. Если запустить ее без параметров, то результат на экране будет примерно следующий:
PID TTY TIME CMD
1652 tty1 00:00:00 bash
1741 tty1 00:00:00 ps
Перед нами четыре колонки, которые показывают идентификатор процесса, терминал, на котором запущена программа, время работы и выполняемая команда.
Это далеко не полный список. Чтобы увидеть все процессы, следует выполнить команду ps
с ключом -a
. Но и это еще не весь перечень, потому что отобразятся только программы своего терминала. Если требуется полный список процессов, запущенных со всех терминалов, то нужно добавить ключ -х
. Помимо этого, вы можете пожелать увидеть имя пользователя, под которым работает процесс, для этого добавьте ключ -u
. В итоге, исчерпывающую информацию можно получить, выполнив команду:
ps -axu
Результат работы будет таков:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 1376 452 ? S 14:25 0:05 init
root 2 0.0 0.0 0 0 ? SW 14:25 0:00 [keventd]
root 3 0.0 0.0 0 0 ? SW 14:25 0:00 [kapmd]
root 5 0.0 0.0 0 0 ? SW 14:25 0:00 [kswapd]
root 6 0.0 0.0 0 0 ? SW 14:25 0:00 [bdflush]
root 7 0.0 0.0 0 0 ? SW 14:25 0:00 [kupdated]
root 530 0.0 0.1 1372 436 ? S 14:25 0:00 klogd -x
rpc 550 0.0 0.2 1516 540 ? S 14:25 0:00 portmap
Колонка STAT
показывает состояние процесса. Здесь можно встретить следующие коды:
□ S
(Sleeping) — спящий, это нормальное состояние для сервисов, которые просыпаются только на редкие запросы клиентов;
□ R
(Runnable) — исполняемый в данный момент;
□ T
(Traced or Stopped) — в состоянии отладки или остановлен;
□ Z
(Zombied) — зависший. Такие можно смело убивать;
□ W
— не имеет резидентных страниц;
□ <
— обладает высоким приоритетом;
□ N
— имеет низкий приоритет.
Это основные состояния, которые вы можете увидеть у процессов в своей системе.
Если в колонке стоит вопросительный знак, то это означает, что процесс запущен еще на этапе загрузки системы и не принадлежит какому-либо терминалу.
Это всего лишь небольшой фрагмент файла. В реально работающей системе процессов очень много, и даже при минимальном количестве запущенных сервисов может не хватить одного экрана для отображения всех. Я люблю сохранять результат работы в текстовый файл, а потом спокойно изучать его в любом редакторе. Для этого я выполняю команду:
ps -axu >> ps.txt
Чтобы увидеть, чем в данный момент занимаются другие пользователи, можно выполнить команду w
. В результате вы получите на экране приблизительно такую картину:
10:59am up 37 min, 2 users, load average: 0.00, 0.00, 0.00
USER TTY FROM LOGIN@ IDLE JCPU PCPU WHAT
root tty1 - 10:24am 0.00s 0.82s 0.05s w
Вильям Л Саймон , Вильям Саймон , Наталья Владимировна Макеева , Нора Робертс , Юрий Викторович Щербатых
Зарубежная компьютерная, околокомпьютерная литература / ОС и Сети, интернет / Короткие любовные романы / Психология / Прочая справочная литература / Образование и наука / Книги по IT / Словари и Энциклопедии