Сессией называется коллекция групп процессов (заданий). У всех имеющихся в сессии процессов будет один и тот же идентификатор сессии. Ведущим в сессии является процесс, создающий сессию, а идентификатор этого процесса становится идентификатором сессии.
Сессии в основном используются оболочками, допускающими управление заданиями. Все группы процессов, созданные такой оболочкой, принадлежат той же сессии, что и оболочка, являющаяся ведущим процессом сессии.
У сессий обычно имеется связанный с ними управляющий терминал, который устанавливается, когда ведущий процесс сессии первый раз открывает терминальное устройство. Для сессии, созданной интерактивной оболочкой, это терминал, с которого пользователь вошел в систему. Терминал может быть управляющим для нескольких сессий.
Вследствие открытия управляющего терминала ведущий процесс сессии становится для него управляющим процессом. Если происходит отключение от терминала (например, если закрыто окно терминала), управляющий процесс получает сигнал SIGHUP
.
В любой момент времени одна из групп процессов в сессии является приоритетной группой (приоритетным заданием), которая может считывать ввод с терминала и отправлять на него вывод. Если пользователь набирает на управляющем терминале символ прерывания (обычно это Ctrl+C
) или символ приостановки (обычно это Ctrl+Z
), драйвер терминала отправляет сигнал, уничтожающий или приостанавливающий приоритетную группу процессов. У сессии может быть любое количество фоновых групп процессов (фоновых заданий), создаваемых с помощью символа амперсанда (&
) в конце командной строки.
Оболочки, допускающие управление заданиями, предоставляют команды для просмотра списка всех заданий, отправки заданиями сигналов и перемещением заданий между режимом первого плана и фоновым режимом.