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