Dateioperationen wie stat funktionieren nicht als Daemon
Posted: 16. Oct 2007 15:23
Hallo!
Ich wollte mein Konsolenprogramm als Daemon laufen lassen. Habe mir dazu eine Funktion geschrieben die ganz grob in etwa so aussieht:
Jetzt habe ich folgendes Problem. In meiner main() habe ich folgenden Codeabschnitt:
Läuft das Programm als Daemon ist de letzte Debugausgabe "BLAAA". Als normales Programm komme ich aber bis zum "BLUB". Ich habe absolut keine Idee wiese das Programm als Daemon sich nach dem BLAAA beendet. Noch nicht mal in die if-Abfrage geht der Daemon, sonst würde ja noch die dort vorhandene Debugausgabe durchgeführt.
Hab ich irgendetwas übersehen?
Gruß
Thorsten
Ich wollte mein Konsolenprogramm als Daemon laufen lassen. Habe mir dazu eine Funktion geschrieben die ganz grob in etwa so aussieht:
Code: Select all
void start_daemon()
{
...
fork();
chdir("/tmp");
umask(0);
for(i=sysconf(_SC_OPEN_MAX); i>0; i--) close(i);
...
}
Code: Select all
...
debug(INFO, "Lese ./netref.conf ein.");
sprintf(cFilename, "./netref.conf");
debug(INFO, "BLAAAA");
if ( stat( cFilename, &tConfAttr ) != 0 )
{
debug(INFO, "netref.conf im lokalen Verzeichnis nicht gefunden. Lese /etc/netref/netref.conf ein.");
sprintf(cFilename, "/etc/netref/netref.conf");
if ( stat( cFilename, &tConfAttr ) != 0 )
{
debug(ERROR, "netref.conf wurde nicht gefunden! Beende daher NetRef!!");
return(EXIT_FAILURE);
}
}
debug (INFO, "BLUB");
...
Hab ich irgendetwas übersehen?
Gruß
Thorsten