Иногда процессы зависают. Да, такие ситуации бывают и в ОС Linux. Центральный процесс может быть снят с помощью комбинации клавиш kill
kill %n
Параметр n нужно заменить на номер процесса. Например, чтобы завершить работу фоновой программы man, нужно выполнить:
kill %1
Затем сразу же запустите команду jobs
[1] + Terminated man ls
После повторного вызова команды jobs
Если вы хотите завершить работу процесса, который запущен не вами, но вы знаете его PID, то нужно выполнить команду:
kill n
Знак процента в этом случае не нужен. Тогда команда kill
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
□ R
□ T
□ Z
□ 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