sslug-teknik team mailing list archive
-
sslug-teknik team
-
Mailing list archive
-
Message #05525
Re: Hvilke processer dør ved logout?
Ole Tange wrote:
>
> Christian Borup wrote:
> > Morten Olsen wrote:
> > > Ole Tange wrote:
> > > > Morten Olsen wrote:
> > > > >
> > > > > > > Hvad er kriteriet for at en process dør, som følge af at jeg
> > > > > > > logger ud?
> > > > > [Alle børn af login]
> > > > [Modeksempel: cat /dev/zero >/dev/null & exit ]
> > >
> > > Ikke på min maskine. (2.2.1, bash)
> >
> > Som Morten antyder kommer det an på din shell.
> >
> > [(t)csh gør det, men ksh/bash gør det ikke]
>
> Øhh??: Jeg har lige prøvet at add'e en ny bruger. Den nye bruger har
> RH5.2's standard indstillinger for nye brugere - herunder /bin/bash som
> shell. Herefter loggede jeg ind som vedkommende og fyrede nævnte
> kommando
> af.
>
> Processen cat overlever - selv hvis den er startet under ksh.
>
> # uname -a
> Linux tigger.tange.dk 2.2.3 #2 Thu Mar 18 15:02:26 CET 1999 i586 unknown
>
> Jeg har lavet samme stunt på en kerne 2.0.36.
>
> Mystikken breder sig.
Hmm, og dog ikke helt. Jeg opdagede at jeg havde lavet en fejl, idet jeg
cat'ede /dev/null istedet for _til_ /dev/null. Så overlever min process
også. Jeg er dog just kommet i besiddelse af "Advanced programming in
the Unix enviroment" af Stevens, og kunne ikke dy mig for at se om jeg
kunne finde løsningen. Mit foreløbige svar: Det har noget at gøre med
"job-control", og det er derfor der kan være forskelle imellem shells.
Med job control (standard, cat fortsætter efter logout)
ps xj:
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
1633 1634 1634 1634 p1 1737 S 0 0:00 bash
1634 1736 1736 1634 p1 1737 R 0 0:02 cat /dev/zero
^^^^
1634 1737 1737 1634 p1 1737 R 0 0:00 ps -xj
Uden job control (sættes med 'set +m', cat stopper)
PPID PID PGID SID TTY TPGID STAT UID TIME COMMAND
1633 1634 1634 1634 p1 1634 S 0 0:00 bash
1634 1743 1634 1634 p1 1634 R 0 0:03 cat /dev/zero
^^^^
1634 1744 1634 1634 p1 1634 R 0 0:00 ps xj
Med job control har cat sin egen processgruppe, uden ligger den i bash'
processgruppe. Helt præcist hvorfor dette gør en forskel, kan jeg ikke
lige svare på.
Mvh Morten
References