View previous topic :: View next topic |
Author |
Message |
dapsaille Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/188543795242512dd3785fb.gif)
Joined: 02 Aug 2004 Posts: 2366 Location: Paris
|
Posted: Wed Nov 23, 2005 8:16 pm Post subject: [su] killall su => programmes tournent encore ?? |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
Enlight Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/34498084446f6e929bedfd.jpg)
Joined: 28 Oct 2004 Posts: 3519 Location: Alsace (France)
|
Posted: Wed Nov 23, 2005 8:25 pm Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
dapsaille Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/188543795242512dd3785fb.gif)
Joined: 02 Aug 2004 Posts: 2366 Location: Paris
|
Posted: Wed Nov 23, 2005 8:34 pm Post subject: |
|
|
Code: |
$TON_TERM
\_/bin/bash
..\_su <---------------------------------- lui
....\_/bin/bash
......\_$LA_COMMANDE_ROOT
|
Etonnant non ? ? |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
Enlight Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/34498084446f6e929bedfd.jpg)
Joined: 28 Oct 2004 Posts: 3519 Location: Alsace (France)
|
Posted: Wed Nov 23, 2005 8:49 pm Post subject: |
|
|
Donc le 2è /bash se rattache au premier sans intermédiaire? ou juste la dernière commande? |
|
Back to top |
|
![](templates/gentoo/images/spacer.gif) |
dapsaille Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/188543795242512dd3785fb.gif)
Joined: 02 Aug 2004 Posts: 2366 Location: Paris
|
Posted: Wed Nov 23, 2005 9:22 pm Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
widan Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/142533236243680bda6f27b.jpg)
Joined: 07 Jun 2005 Posts: 1512 Location: Paris, France
|
Posted: Thu Nov 24, 2005 1:15 pm Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
dapsaille Advocate
![Advocate Advocate](/images/ranks/rank-G-1-advocate.gif)
![](images/avatars/188543795242512dd3785fb.gif)
Joined: 02 Aug 2004 Posts: 2366 Location: Paris
|
Posted: Thu Nov 24, 2005 4:27 pm Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
widan Veteran
![Veteran Veteran](/images/ranks/rank_rect_5_vet.gif)
![](images/avatars/142533236243680bda6f27b.jpg)
Joined: 07 Jun 2005 Posts: 1512 Location: Paris, France
|
Posted: Thu Nov 24, 2005 5:39 pm Post subject: |
|
|
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 |
|
![](templates/gentoo/images/spacer.gif) |
|