← Back to team overview

sslug-teknik team mailing list archive

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