Programy nie odczepiające się od terminala (gpm, innwatch, vixie crond)

Jakub Bogusz qboosh w prioris.mini.pw.edu.pl
Nie, 2 Wrz 2001, 12:51:43 CEST


On Sun, Sep 02, 2001 at 03:37:11AM +0200, Jan Rekorajski wrote:
> [sobota, 01 wrzesień 2001], Jakub Bogusz napisał(a):
> 
> > Znowu mnie to trafiło - zauważyłem, że od kilku (8) dni nie działa mi
> > (vixie) crond - myślałem, że sam zszedł, ale w logach znalazłem:
> > "SAK"...
> > 
> > Jaka jest (w miarę ogólna) metoda odczepiania się od terminala?
> 
> pid = fork()
> if (pid > 0)
> 	exit(0);
> else if (pid == 0) {
> 	close(0);
> 	close(1);
> 	close(2);
> }
> 
> chociaż AFAIR samo fork(); exit() bez close(0,1,2) powinno wystarczyć.

Bez close nie wystarczy - tak jest w vixie-cron.
Tzn. chyba wystarczy do pozbycia się controlling-tty, ale nadal
pozostają otwarte deskryptory przyczepione do terminala.

Jest jeszcze problem deskryptora 12 - pozostaje, jeżeli restart demona
był robiony przez rpm (chociaż może to należy poprawić rpm, żeby po
fork() przed exec() zamykał niektóre deskryptory?).

Kolejne pytanie: jak pozbyć się controlling-tty w skrypcie shella?
Chodzi o innwatch. Przekierowanie deskryptorów 0-2 do /dev/null nie
wystarcza.


-- 
Jakub Bogusz
http://prioris.mini.pw.edu.pl/~qboosh/



Więcej informacji o liście dyskusyjnej pld-devel-pl