Чому ми використовуємо setid () під час демонстрації процесу?


18

ДЛЯ створення послуги (демона) ми розсилаємо батька і змушуємо його вийти, роблячи дитину лідером сесії, зателефонувавши setsid(). Крім того, для чого ми використовуємо setid ()? Наш процес сироти опікується init(хоча і не у всіх випадках) процесом.

Чому ми використовуємо stsid ()? Чи є якесь відношення між сигналом setsid()обробки та обробкою SIGHUP.

Відповіді:


13

Ми використовуємо setid (), тому що якщо ми просто вб'ємо батьків, дитина теж буде вбита, setid ()

створює новий сеанс, якщо процес виклику не є лідером групи процесів. Процес виклику є лідером нового сеансу, керівником групи процесів нової групи процесів і не має керуючого терміналу.

Батько є першим лідером групи процесів, вбиваючи його - або вбиваючи сеанс / термінал - вбиває групу, саме тому ми перемикаємо лідера (і створюємо новий сеанс, поки ми в ньому).


1
Щоправда, але чи є в ній реальність із сигналом SIGHUP, коли я коу, він надсилається при втраті контрольного терміналу
Калу

7
Батько отримує SIGHUP, коли контрольний термінал закритий. Дитина не отримає SIGHUP, тому що це в новому сеансі.
ZN13
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.