setsid() создает новый сеанс, если вызывающий процесс не
создает группу. Вызывающий процесс становится ведущим в группе, ведущим процессом
нового сеанса и не имеет контролирующего терминала. Идентификаторы группы
процессов и сеанса при установке будут равными идентификатору вызывающего
процесса. Вызывающий процесс будет единственным в этой группе и сеансе.
При ошибке возвращаемое значение равно -1. Единственная ошибка, которая может произойти, -
это EPERM. Она происходит, когда идентификатор группы процессов любого процесса равен
идентификатору вызывающего процесса. В этом случае функция
setsid
не может быть выполнене, так как процесс уже является ведущим в группе.
ЗАМЕЧАНИЯ
Создающий группу процесс ("лидер") - это процесс, идентификатор группы процессов которого
равен идентификатору самого процесса. Для того, чтобы удостовериться, что функция
setsid
выполнена, создайте дочерний процесс при помощи команды fork и выйдите из процесса,
затем в дочернем процессе сделайте вызов
setsid().