Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
[su] killall su => programmes tournent encore ??
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index French
View previous topic :: View next topic  
Author Message
dapsaille
Advocate
Advocate


Joined: 02 Aug 2004
Posts: 2366
Location: Paris

PostPosted: Wed Nov 23, 2005 8:16 pm    Post subject: [su] killall su => programmes tournent encore ?? Reply with quote

Bonjour à tous ..

Voila je campe le decor

1 xterm en su root qui compile un beau nice -n 19 emerge falconseye
un autre en su root qui compile heuu je sais plus
puis un autre su root en xterm qui me lance Legends ....

Legends plante mais ne me remet pas sur X , pas de soucis un killall su en console1 me deplante et me remet sur X , et la je vois dans mes fenetres xterm que mon su est fini (je veux dire revenu a mon user flo en vert) mais les compilations continuent ?!!!???


J'en deduis que su n'est pas le processus parent des fork de bash ?? ou alors j'ai fume toute la tapisserie de mes toilettes à force de lire à l'envers le oreilly administration unix ?
Back to top
View user's profile Send private message
Enlight
Advocate
Advocate


Joined: 28 Oct 2004
Posts: 3519
Location: Alsace (France)

PostPosted: Wed Nov 23, 2005 8:25 pm    Post subject: Reply with quote

c.a.d? en général tu ouvres un term sous X puis tu su root ça donne :

Quote:

$TON_TERM
\_/bin/bash
..\_su
....\_/bin/bash
......\_$LA_COMMANDE_ROOT


T'as tué qui la dedans?[/quote]
Back to top
View user's profile Send private message
dapsaille
Advocate
Advocate


Joined: 02 Aug 2004
Posts: 2366
Location: Paris

PostPosted: Wed Nov 23, 2005 8:34 pm    Post subject: Reply with quote

Code:


$TON_TERM
\_/bin/bash
..\_su  <---------------------------------- lui
....\_/bin/bash
......\_$LA_COMMANDE_ROOT



Etonnant non ? ?
Back to top
View user's profile Send private message
Enlight
Advocate
Advocate


Joined: 28 Oct 2004
Posts: 3519
Location: Alsace (France)

PostPosted: Wed Nov 23, 2005 8:49 pm    Post subject: Reply with quote

Donc le 2è /bash se rattache au premier sans intermédiaire? ou juste la dernière commande?
Back to top
View user's profile Send private message
dapsaille
Advocate
Advocate


Joined: 02 Aug 2004
Posts: 2366
Location: Paris

PostPosted: Wed Nov 23, 2005 9:22 pm    Post subject: Reply with quote

la commande il me semble

$TON_TERM
\_/bin/bash => user flo qui tappes
..\_su => ou j'entre mon pass root
....\_/bin/bash => ou j'execute
......\_$LA_COMMANDE_ROOT



La je tappes killall su et bien $LA_COMMANDE_ROOT continue a s'executer (une compil ca se rate pas :p ) mais dans un bash environnement type le 1er /bin/bash (en user donc) et a la fin de la compil il ne me remet pas visuellement au bash , il me faut appuyer sur entree afin de revoir le prompt type flo@nunux ... Strange quand meme je trouve :p
Back to top
View user's profile Send private message
widan
Veteran
Veteran


Joined: 07 Jun 2005
Posts: 1512
Location: Paris, France

PostPosted: Thu Nov 24, 2005 1:15 pm    Post subject: Reply with quote

C'est normal. Quand on kill un su, il le detecte et kill le shell qu'il a lancé. On le voit d'ailleurs:
Code:
Session terminated, killing shell... ...killed.

Donc su et bash (root) dégagent. Mais les processus lancés par le shell, pas forcément (ça dépend du shell, et du processus fils aussi). Donc tu vas te retrouver avec ça:
Code:
init
  \_ ... (X, window manager, ...)
  |    \_ xterm
  |        \_ bash (en user flo)
  \_ emerge

Donc emerge tourne toujours. Et il a toujours stdout et stderr dirigés vers le terminal d'où il a été lancé, donc tu vois ce qu'il affiche dans le xterm. Mais en même temps ton bash en user a détecté que le processus qu'il a lancé (su) avait disparu, donc il décide qu'il peut afficher son prompt et attendre des commandes. Une fois emerge fini, tu ne vois pas de prompt car il a déjà été affiché (juste beaucoup plus haut dans le term...), et appuyer sur entrée en affiche un nouveau... Le phénomène peut se voir également si tu lances une commande qui affiche des choses sur stdout en background:
Code:
widan@stephanie ~/openbios/openbios/utils/devbios $ ls &
[3] 12549
widan@stephanie ~/openbios/utils/devbios $ COPYING    Makefile     ToDo         comp.c        flashchips.h  procfs.c
CREDITS    Makefile.24  bios.h       filesystem.c  pcisets.c     programming.c
ChangeLog  README.bios  bios_core.c  flashchips.c  pcisets.h     programming.h
echo 'Hello !'
Hello !
[3]+  Done                    ls --color=auto
widan@stephanie ~/openbios/utils/devbios $

Là on voit bien ce qui s'est passé (prompt affiché avant que ls n'affiche sa sortie, et que même sans prompt visible, tu est bien sur une ligne de commande (le "echo" marche normalement).
Back to top
View user's profile Send private message
dapsaille
Advocate
Advocate


Joined: 02 Aug 2004
Posts: 2366
Location: Paris

PostPosted: Thu Nov 24, 2005 4:27 pm    Post subject: Reply with quote

Ok merci pour ces infos très instructives ...

Mais dans ce cas les process que je lance dans un su sont ratachés à init directement ??

Ou alors sonts ils père sans être fils ? (ce que je pensais impossible)

Pour info j'utilise bourne again sh (me semble par defaut sous gentoo)
Back to top
View user's profile Send private message
widan
Veteran
Veteran


Joined: 07 Jun 2005
Posts: 1512
Location: Paris, France

PostPosted: Thu Nov 24, 2005 5:39 pm    Post subject: Reply with quote

dapsaille wrote:
Mais dans ce cas les process que je lance dans un su sont ratachés à init directement ??

Non, normalement tu as ça:
Code:
init
  \_ ... (X, window manager, ...)
     \_ xterm
        \_ bash (en user)
           \_ su
              \_ bash (en root)
                 \_ emerge

Mais si un processus au milieu de la chaîne meurt, alors ses fils sont rattachés à init. Ici on kille su (et su kille son fils direct - mais c'est spécifique à su), donc il reste emerge qui n'a plus de parent, donc se retrouve rattaché à init.
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index French All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum