sonnenblen.de - Das unabhängige Sun User Forum

Software => Programmieren, Kompilieren => Thema gestartet von: Oxygenic am 27. April 2004, 22:09:21

Titel: daemon()
Beitrag von: Oxygenic 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 "&"?
Titel: Re: daemon()
Beitrag von: ChaosKosta 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 ! ;)