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