signal detem po skonceni rodice

Jirka Kosina jikos na jikos.cz
Úterý Říjen 2 17:57:16 CEST 2001


Ahoj,

> > K tomu, aby program bezel jako demon, prece staci dvojity fork(), a muzu
> > klidne ukoncit shell, ktery to vyvolal, a demon pobezi dal - z toho
> > prosteho duvodu, ze po zemreni rodice (ktere nastane vicemene okamzite po
> > frok()u, prave kvuli demonizaci) se jako PPID procesu, ktery vzniknul
> > prvnim fork()em, nastavi init.
> 	Tak toto mam skutecne odzkousene, ze tak jednoduche to neni:
> 1. _Musim_ se odpojit od ridiciho terminalu nebo mne shell muze zabit
> (ci jinak ovladat pres signaly) i kdyz jsem forkoval...
> 2. Mam za to, ze se musim stat process group leader (ve sve rezii)

[jikos na twin jikos]$ cat a.c | grep -v \#include
main(int argc, char *argv[])
{
  pid_t newpid;

  if ((newpid=fork()) < 0){fprintf(stderr,"fork() error.\n");return(-1);}
  else if (newpid>0){fprintf(stdout,"fork ok - pid %d\n",newpid);return(0);}
  while (1); {usleep(10000);}
}
[jikos na twin jikos]$ cc -o x a.c
[jikos na twin jikos]$ ./xx
fork ok - pid 1797
[jikos na twin jikos]$

ted se od tohoto terminalu odhlasim, a z jineho dam

[jikos na twin jikos]$ ps aux | grep 1797
jikos     1797 49.7  0.4  1328  308 pts/11   R    17:55   0:20 ./xx
jikos     1818  0.0  0.9  1620  600 pts/11   S    17:56   0:00 grep 1797

-- 
JiKos.




Další informace o konferenci Linux