Кто посылает SIGHUP в процесс управления псевдотерминалом, когда эмулятор терминала завершается?

Когда терминал отключен, kernel ​​ОС отправляет SIGHUP процессу управления терминалом.

Когда эмулятор терминала завершается, кто посылает SIGHUP процессу управления псевдотерминалом, лежащему в основе эмулятора терминала: kernel ​​ОС или эмулятор терминала?

Благодарю.

Ответ уже содержится в вашем вопросе. Когда терминал отключен, kernel ​​отправляет сигнал SIGHUP процессу управления терминалом¹. Для терминала, созданного драйвером в ядре, терминал отключается, когда драйвер говорит об этом. Для псевдотерминала терминал отключается, когда дескриптор файла для главной стороны терминала закрыт (либо потому, что процесс эмулятора терминала закрыл его явно, либо потому, что процесс эмулятора терминала умер)) ³.

Controlling Процесс управления – это любой процесс, который запускается первым в терминале – точнее, это первый процесс, который либо открыл терминал, будучи лидером сеанса, либо стал лидером сеанса, когда терминал открыт, если этот процесс все еще является лидером сеанса.
² Главная сторона – это сторона эмулятора. Ведомая сторона – это сторона приложения, работающего в терминале.
³ Если у более чем одного процесса главная сторона терминала открыта, все они должны закрыть свои файловые дескрипторы (возможно, умирая), чтобы дескриптор файла был закрыт.