1. Хотя пользователь входит в единый процесс (оболочка, являющаяся его интерфейсом командной строки), пользователи заканчивают тем, что запускают много процессов в результате таких действий, как:
-> Запуск неинтерактивного задания в фоновом режиме.
-> Переключение между интерактивными задачами через управление заданиями.
-> Запуск нескольких процессов, которые работают вместе через каналы.
-> Запуск системы управления окнами, такой как система X Window, которая позволяет открывать несколько окон терминала.
2. Для обработки всех этих процессов ядру необходимо сформировать группы процессов, состоящие из этих процессов.
3. Для дальнейшего управления этими группами процессов в соответствии с пользователем эти группы делятся в соответствии с пользователем на сеансы.(Обратите внимание, что пользователь не является пользователем Linux, но оболочка или терминал означает пользователя. Два терминала на одной и той же машине, вошедшие в систему одним и тем же пользователем Linux, означают 2 разных пользователя и, таким образом, 2 разных сеанса пользователя. Терминал может быть управляющим терминалом только для одного сеанса).
Процесс, который запускает оболочку для этого «пользователя» или сеанса, называется лидером сеанса.
4. Также обратите внимание на закрытие терминала нажатием кнопки «х», чтобы вы не вышли из этого терминала. Этот терминал продолжает работать в фоновом режиме. Если вы хотите перенести сеанс с терминала, вам нужно выйти из системы, нажав CTRL+D или выйти.
5. Когда вы выходите из терминала, ядро отправляет сигнал SIGHUP (аналогично kill -1) процессу, который является лидером сеанса. Теперь все остальные процессы, выполняющиеся в терминале, являются дочерними для этого лидера сеанса. Эти дочерние процессы сформировали группы процессов, которые управляются этим процессом лидера сеанса (родительским процессом).
6. Процесс лидера сеанса отправляет SIGHUP каждому дочернему процессу, некоторые процессы завершаются, в то время как некоторые могут отказаться от завершения (приостановленные или запущенные в фоновом режиме). Те, кто предпочитает не прекращать, становятся осиротевшими как сеансовые оверны и сразу же принимаются процессом init (родителем всего процесса на машине linux).
Подробнее см . Ссылку Модель процесса разработки Linux.