Коли ви закриваєте термінал, термінал надсилає сигнал оболонки SIGHUP; оболонка, у свою чергу, посилає сигнал SIGHUP всім своїм дочірнім процесовим групам, які включають фонові групи процесів;
Те, як кожен процес буде реагувати на сигнал, повністю залежить від процесу: якщо процес не визначив обробник сигналу і скаже ядро (через деякий syscall, такий як signal()або sigaction()), що він хоче обробити його, ядро виконує обробник за замовчуванням для сигналу, який у випадку сигналу SIGHUP полягає у припиненні процесу.
Однак, коли ви запускаєте команду з sudo, UID sudoпроцесу та його дочірнього процесу встановлюється 0(root); в цілому, якщо UID процесу передачі сигналу 0(root) або такий же, як і цільовий процес, ядро відхиляє сигнал (тобто: процес не може надсилати сигнали до процесу, що належить іншому користувачеві, якщо процес передача сигналу належить корінь); тому процес, керований користувачем, такий як екземпляр Bash, керований терміналом, не може ЗНАЧИТИ sudoпроцес і, в кінцевому рахунку, закриття терміналу не впливає на процес, розпочатий з sudo.