Dateioperationen wie stat funktionieren nicht als Daemon

Post Reply
Message
Author
ThorstenR

Dateioperationen wie stat funktionieren nicht als Daemon

#1 Post by ThorstenR »

Hallo!

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);
...
}
Jetzt habe ich folgendes Problem. In meiner main() habe ich folgenden Codeabschnitt:

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");
...
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

User avatar
hjb
Pro-Linux
Posts: 3264
Joined: 15. Aug 1999 16:59
Location: Bruchsal
Contact:

#2 Post by hjb »

Hi!

Natürlich wird das stat ausgeführt. Verfolge es doch mal mit strace. Der Fehler ist vielleicht eher in deiner debug-Funktion.

Grüße,
hjb
Pro-Linux - warum durch Fenster steigen, wenn es eine Tür gibt?

Post Reply