Если вам не нравятся какие-либо стандартные функциональные действия daemon()
, вы можете написать свои собственные.Вы можете контролировать, переключается ли он на корневой каталог;вы можете контролировать повторное подключение стандартных каналов ввода / вывода к / dev / null.Но если вы хотите, чтобы stderr был открыт для файла журнала, при повторном подключении stdin и stdout к / dev / null, вы должны решить, лучше ли использовать daemon()
с соответствующими параметрами, за которыми следует другой код, чем свернуть свой собственный.
В 10000 * не так много ракетостроения;он вызывает fork()
и setsid()
(согласно версии Linux; в версии MacOS упоминается приостановка SIGHUP во время работы daemon()
).Проверьте стандартные ресурсы для получения дополнительной информации о демонизации - например: