Jak zabijet?

Marcel Kolaja xkolaja na aurora.fi.muni.cz
Pondělí Březen 5 12:24:10 CET 2001


On Mon, 5 Mar 2001, Petr Tomasek wrote:

> On Mon, Mar 05, 2001 at 11:14:34AM +0100, Blasko Marek wrote:
> > > Co delam blbe?
> > > 
> > > ebed:~$ while true; do echo 1; sleep 10; done &
> > > [1] 9128
> > > 1
> > > ebed:~$ killall -9 "while true; do echo 1; sleep 10; done"
> > > while true; do echo 1; sleep 10; done: no process killed
> > > ebed:~$
> > 
> > no ak to spustis tak sa vytvory proces bash (ci ini shell) a musis zabit
> > ten. ak sa nemylim tak v skripte sa da zistit PID prave spusteneho
> > pricesu a budes to musiet killnut podla toho cisla.
> 
> Grrr... tady nekomu nedochazi, co to znamena 'killall'... 
> .. ja potrebuju zabit vsechny procesy, ktere byly spusteny s touhle radkou..
> ..a to ve chvili, kdy uz davno nevim, kdo byl jejich pradeda....

No jo, jenže tím killallem, tak jak to prezentujete to nezabijete. Když
spustíte ten proces, spustí se právě zmiňovaný shell, který vykonává ten
příkaz. Takže po spuštění příkazu:

xkolaja na linos:~$ while true; do echo 1; sleep 10; done &
[1] 26348
1
xkolaja na linos:~$ kill 26356

můžete vidět v ps asi toto (nikde tam nenajdete ten celý příkaz, jak jste
ho zadal):

xkolaja   4649     1  0 Feb22 tty2     00:00:00   -bash
xkolaja  26348  4649  0 12:24 tty2     00:00:00     -bash
xkolaja  26349 26348  0 12:24 tty2     00:00:00       sleep 10

Po provedení killu:

xkolaja na linos:~$ kill 26348
xkolaja na linos:~$
[1]+  Ukončen (SIGTERM)       while true; do
    echo 1; sleep 10;
done
xkolaja na linos:~$

Takže pokud chcete zabít ten celý prováděný příkaz, musíte zabít ten
shell, který se spustil. Co tedy děláte špatně? Zabíjíte proces, který
neexistuje.


S pozdravem

              Marcel Kolaja, NLPlab alias H.E.L.L.
                 http://www.fi.muni.cz/~xkolaja/
-----------------------------------------------------------------
      "Software is like sex - it's better when it's free."
                         Linus Torvalds
-----------------------------------------------------------------
           Petition For A Software Patent Free Europe
                 http://petition.eurolinux.org/
-----------------------------------------------------------------



Další informace o konferenci Linux