Я прочитал главу об управлении заданиями в руководстве glibc
, но мне интересно, что делать с оставшимися заданиями, когда оболочка завершается.
Я предполагаю, что следующие шаги (в соответствии с соглашением posix для обработки потерянных групп процессов первые два шага кажутся очевидными):
- отправляет сигнал HUP заданиям с помощью sid оболочки
- отправить сигнал ПРОДОЛЖЕНИЕ на остановленные задания с помощью sid оболочки
- освободить ресурс, выделенный для структур данных задания
Моя проблема в том, что если рабочие места выживут?
Я думал, что шанс изменить их идентификатор сеанса, чтобы освободить sid и отсоединить группу процессов от терминала (не уверен, имеет ли это смысл)
Должен ли я сделать ioctl(STDIN_FILENO, TIOCSCTTY)
, чтобы процессы сеанса потеряли управляющий терминал и отправили сигналы?
Что делать с tty
? Должен ли я запустить логин и установить его в качестве новой группы процессов управляющего терминала tty?
Я все еще в замешательстве, и подсказка была бы признательна.