Скелет на демон
Необходими стъпки за демонизиране на процес:
Разклонете родителския процес (Използваме:
fork
) и го оставете да се прекрати, ако разклоняването е успешно и тъй като родителският процес е прекратен, дъщерният процес сега работи във фонов режим.Създайте нова сесия и получете идентификатор (Използваме:
setsid
) Извикващият процес става лидер на новата сесия и лидер на групата процеси на новата група процеси. Процесът вече е отделен от управляващия го терминал (CTTY).Уловетеве сигналите, като ги игнорирате и/или обработвате.
Разклонете отново (Използваме:
fork
) и оставете родителския процес да се терминира, за да сте сигурни, че сте се отървали от водещия процес на сесията. (Само водещите сесии могат да получат отново TTY.)Променете работната директория на демона (Използваме:
chdir
).Променете маската на файловия режим в съответствие с нуждите на демона (Използваме:
umask
).Затвoрете всички отворени файлови дескриптори, които могат да бъдат наследени от родителския процес (Използваме:
close
).
daemonaze.c
Източници
Last updated