Процессы и задания

Процессы

Процесс - это работающая программа.

Получить перечень работающих процессов можно командой:

ps
КодЗначение
PIDидентификатор процесса
TTYоконечное устройство, в котором запущен процесс
STATстатус процесса и где расположена отведенная для него память. S - ждущий процесс, R — работающий (описание на странице ps(1) в руководстве)
TIMEколичество времени центрального процессора в минутах и секундах, которое использовал данный процесс к настоящему моменту.
COMMANDпроцесс может изменить исходное значение этого поля.

Параметры команды ps (как и параметры других команд их можно комбинировать):

ПараметрОписание
xвсе процессы, запущенные вами
axвсе процессы системы
uвключить детализированную информацию о процессах
wпоказывать полные названия команд

Чтобы посмотреть конкретный процесс, добавьте его PID к списку аргументов.

$$ переменная оболочки, которая содержит PID текущего процесса:

ps u $$

Завершение процессов

Отправить сигнал от ядра к процессу для его завершения:

kill pid
# по умолчанию сигнал TERM

Возможны другие параметры:

kill -STOP pid # остановить процесс
kill -CONT pid # продолжить процесс

сочетания клавиш Ctrl+С для прерывания процесса, работающего в терминале, равносильно вызову команды kill для завершения процесса по сигналу INT («прервать»).

Управление заданиями

Оболочка поддерживает управление заданиями. Один из способов отправки командам сигналов - TSTP (подобен сигналу STOP) и CONT.

Отправить сигнал TSTP: сочетание клавиш CTRL+Z.

Посмотреть подвешенные задания:

jobs

Возобновить процесс:

fg

Перевести в фон:

bg

Фоновые процессы

Можно отделить процесс от оболочки и переместить его в фон. Это делается с помощью символа амперсанда &. Это полезно при длительных процессах, например, при распаковке большого архива:

gunzip file.gz &

После данной команды оболочка возвратит PID процесса и вернет строку приглашения.

Фоновый процесс может зависнуть, если он пытается считывать из стандартного ввода. Он так же может сыпать ошибки в терминал в неподходящий момент. Лучше перенаправить его вывод (и ввод).

Источник – книга «How Linux Works», Brian Ward
Редактировать на GitHub