logout, ssh - cekani na ukonceni procesu spusteneho na pozadi
Milan Keršláger
milan.kerslager na pslib.cz
Pátek Květen 28 16:23:44 CEST 2004
On Fri, May 28, 2004 at 04:10:31PM +0200, oldfrog.linux na volny.cz wrote:
>
> >Uz to tu bolo riesene. Je to sposobene tym, ze ssh caka na ukoncenie
> >procesov, ktore maju vstup/vystup na terminal. Poznam 2 riesenia:
> >
> >nohup sleep 4 > /dev/null 2>&1 < /dev/null &
> >
> >alebo ukocit ssh pomocou Escape Characters (man ssh)
> >Tibor
> >
> No ja ziram, vazne to funguje. A jak je mozne, ze nektere
> demony lze bez presmerovani spustit? Resi presmerovani ve
> vlastni rezii?
Po startu udelaji fork. Rodic skonci (ve shellu dostanete zase prompt) a
potomek pokracuje na "pozadi". Rodicem potomka se tak stane init (proces
cislo 1), protoze jeho rodic skoncil.
Aby se odpojily od terminalu, tak zavrou deskriptory 0, 1 a 2 (stdin,
stdout a stderr). Logovani pak delaji tak, ze vyuziji logovaciho demona
nebo si otevrou nejaky soubor a do nej pak pisou. Pozor je treba dat jen
na to, abyste nepouzil funkce ctouci nebo zapisujici na stdin, stdout a
stderr, protoze tam se objevi nove otevrene soubory (nove otevreny
soubor ziska nejmensi neobsazeny deskriptor).
Nejlepsi je opisovat z nejakeho "zarucene spravneho" jiz funkcniho
programu. Tj. vzit si za vzor treba cron a z nej recyklovat pracovni
postup(y). Ovsem pozor na GPL :-)
--
Milan Kerslager
E-mail: milan.kerslager na pslib.cz
WWW: http://www.pslib.cz/~kerslage/
Další informace o konferenci Linux