On Mon, Jan 29, 2001 at 03:37:51PM +0100, [EMAIL PROTECTED] wrote:
> > Samo fork() tako kot zgoraj ni dovolj. Najprej enkrat forkas stran,
> Tole sem uporabljal za nek daemon.
>
> void daemon() {
> rc=fork();
> if (rc>0) exit(0); //parent should exit and return control, it's OK.
> rc=setsid();
> rc=fork();
> if (rc>0) exit(0); //parent should exit and return control, it's OK.
> }
Hmmm...
V manualu od setsid()-a pise, da javi napako, ce je ze process group leader.
In predlaga, da najprej sforkas.
A jaz prav razumem tole:
Najprej se ga sforka, da ni vec PGL, da je setsid() uspesen. Ubije fotra
in userja ze caka shell.
Potem pozene setsid(), ki ga brcne ven iz shellove grupe (da ni killa),
pa se controlling tty mu vzame. Zdaj je to ze v bistvu to ane?
Zakaj pa se en fork? A ni vseeno ce je svoj group leader.
P.S. A je to posebnost shellov in programov, ki to hocejo, da cel group
pobijejo? al to avtomaticno kernel oz. init oz. nekaj avtomatiziranega
pocne?
Hvala za odgovore.
Lp, Jure