Я предлагаю вообще не писать вашу программу в качестве демона.Сделайте так, чтобы он выполнялся на переднем плане с дескрипторами файлов, текущей директорией, группой процессов и т. Д., Которые ему даны.
Если вы хотите затем запустить эту программу как демон, используйте start-stop-daemon (8), init (8), runv (из runit), upstart, systemd или любой другой, чтобы запустить ваш процесс в качестве демона.То есть, пусть ваш пользователь решает, как запустить вашу программу, и не заставляйте ее запускаться как демон.