Superuser

Autor Thema: daemon()  (Gelesen 3810 mal)

Oxygenic

  • Gast
daemon()
« am: 27. April 2004, 22:09:21 »
Solaris scheint ja keine Dämonen zu kennen, zumindest gibts die Funktion daemon() offenbar nicht. Wie schicke ich einen solchen Prozeß dann am besten in den Hintergrund - doch sicher nicht nur mit "&"?

sonnenblen.de - Das unabhängige Sun User Forum

daemon()
« am: 27. April 2004, 22:09:21 »

ChaosKosta

  • Gast
Re: daemon()
« Antwort #1 am: 04. Mai 2004, 18:21:07 »
Wenn ich mich nicht total irre, dann ist die unter Unices dafür übliche vorgehensweise


if ((child=fork())==0) {
    // Der "Child"-Prozess
    be_daemon();
} else {
   // Der "Vater"-Prozess
   exit(irgendwas);
}


Der Chiuld-prozess bleibt erhalten, und wird von /etc/init adoptiert, und läuft dann als "dämon weiter".

HTH


/
Habs ausprobiert....

// file: test.c
int main(void)
{if (fork()) {exit(0); }
else {while (1);}
}



gcc -o t test.c
t      # und hab dann gleich wieder die Shell
ps -l  
PID     PPID %C PRI NI   SZ  RSS    WCHAN S TT        TIME COMMAND
26878     1      5  10 20  960   80                  R pts/8      0:01 t

exit


War also doch nicht so falsch ! ;)

« Letzte Änderung: 04. Mai 2004, 18:33:04 von ChaosKosta »