/ Forside / Teknologi / Operativsystemer / Linux / Nyhedsindlæg
Login
Glemt dit kodeord?
Brugernavn

Kodeord


Reklame
Top 10 brugere
Linux
#NavnPoint
o.v.n. 11177
peque 7911
dk 4814
e.c 2359
Uranus 1334
emesen 1334
stone47 1307
linuxrules 1214
Octon 1100
10  BjarneD 875
Når kill -9 ikke virker.
Fra : Heine Laursen


Dato : 25-07-02 22:44

Hejsa.

Jeg sider her og undre mig, hvad man enlig kan gøre når man ikke kan slå et
program ihjæl med kill -9. Problmet er at mldonkey, kan sommetider finde
på at gå fuldstændig i baglås efter start af programmet. Jeg skriver så
ps -aux|grep mldonkey og finder pid. og så en kill -9 pid. Men
ps -aux|grep mldonkey viser at programmet er der stadivæk. Endtil nu, har
jeg løst problemet, ved at reboote, men det vil jeg nu helst undgå.

--
Mvh
Heine Laursen

 
 
enrique (25-07-2002)
Kommentar
Fra : enrique


Dato : 25-07-02 23:07

On Thu, 25 Jul 2002 23:44:28 +0200, Heine Laursen wrote:

> Hejsa.
>
> Jeg sider her og undre mig, hvad man enlig kan gøre når man ikke kan slå
> et program ihjæl med kill -9. Problmet er at mldonkey, kan sommetider
> finde på at gå fuldstændig i baglås efter start af programmet. Jeg
> skriver så ps -aux|grep mldonkey og finder pid. og så en kill -9 pid.
> Men ps -aux|grep mldonkey viser at programmet er der stadivæk. Endtil
> nu, har jeg løst problemet, ved at reboote, men det vil jeg nu helst
> undgå.

Det kan være fordi du ikke slå den process ihjæl som har starte den.
Prøv:

ps -auxf

Se hvilken pid den process har som har started den har og dræb så den.

--
Mvh. / Kind regards
Henrik Farre
http://www.cs.auc.dk/~enrique
http://www.fsf.org/philosophy/no-word-attachments.html

Martin Bundgaard (25-07-2002)
Kommentar
Fra : Martin Bundgaard


Dato : 25-07-02 23:14

> Se hvilken pid den process har som har started den har og dræb så den.

Det kan godt være et problem, hvis processen er blevet adopteret af init...

-mb



Kent Friis (06-08-2002)
Kommentar
Fra : Kent Friis


Dato : 06-08-02 12:17

Den Fri, 26 Jul 2002 00:14:15 +0200 skrev Martin Bundgaard:
>> Se hvilken pid den process har som har started den har og dræb så den.
>
>Det kan godt være et problem, hvis processen er blevet adopteret af init...

Så er den process der har startet den allerede væk, medmindre det er
init der har startet den, men så er det /etc/inittab man skal kigge
i.

Mvh
Kent
--
IE is the only thing capable of making Netscape look good
- D. Spider in comp.os.linux.advocacy

Martin Bundgaard (25-07-2002)
Kommentar
Fra : Martin Bundgaard


Dato : 25-07-02 23:09

Hejsa.

> Jeg sider her og undre mig, hvad man enlig kan gøre når man ikke kan slå
et
> program ihjæl med kill -9. Problmet er at mldonkey, kan sommetider finde
> på at gå fuldstændig i baglås efter start af programmet. Jeg skriver så
> ps -aux|grep mldonkey og finder pid. og så en kill -9 pid. Men
> ps -aux|grep mldonkey viser at programmet er der stadivæk. Endtil nu, har
> jeg løst problemet, ved at reboote, men det vil jeg nu helst undgå.

Processen er en såkaldt 'zombie', og når du laver en 'ps aux' vil du kunne
se et 'Z' ud for den.

Zombie processer er nærmest processer der er lukket "halvt" ned, og I den
situation er det KUN parent-processen (dvs. den process som har startet
zombie'en) der kan lukke den helt ned.

-mb



Heine Laursen (25-07-2002)
Kommentar
Fra : Heine Laursen


Dato : 25-07-02 23:40

In article <ahpsqr$lna$1@sunsite.dk>, Martin Bundgaard wrote:
> Hejsa.
>
>> Jeg sider her og undre mig, hvad man enlig kan gøre når man ikke kan slå
> et
>> program ihjæl med kill -9. Problmet er at mldonkey, kan sommetider finde
>> på at gå fuldstændig i baglås efter start af programmet. Jeg skriver så
>> ps -aux|grep mldonkey og finder pid. og så en kill -9 pid. Men
>> ps -aux|grep mldonkey viser at programmet er der stadivæk. Endtil nu, har
>> jeg løst problemet, ved at reboote, men det vil jeg nu helst undgå.
>
> Processen er en såkaldt 'zombie', og når du laver en 'ps aux' vil du kunne
> se et 'Z' ud for den.

Hmm Min maskine er ikke enig med dig!

[heine@0x83a4911e mldonkey]$ ps -aux|grep mldonkey
heine 1249 14.3 2.3 9168 7692 tty3 S 00:33 0:04 ./mldonkey
heine 1253 0.0 0.1 1700 600 tty3 S 00:34 0:00 grep mldonkey
[heine@0x83a4911e mldonkey]$

> Zombie processer er nærmest processer der er lukket "halvt" ned, og I den
> situation er det KUN parent-processen (dvs. den process som har startet
> zombie'en) der kan lukke den helt ned.

Det forstår jeg ikke. Jeg starter processen (mldonkey) men jeg kan ikke
stoppe den igen?

Jeg ved ikke meget om hvad der sker andet, end ikke engang root kan lukke den
ned!

--
Mvh
Heine Laursen

Martin Bundgaard (25-07-2002)
Kommentar
Fra : Martin Bundgaard


Dato : 25-07-02 23:57

> Hmm Min maskine er ikke enig med dig!
>
> [heine@0x83a4911e mldonkey]$ ps -aux|grep mldonkey
> heine 1249 14.3 2.3 9168 7692 tty3 S 00:33 0:04 ./mldonkey
> heine 1253 0.0 0.1 1700 600 tty3 S 00:34 0:00 grep
mldonkey
> [heine@0x83a4911e mldonkey]$

Nej, det ser ikke sådan ud... :)

Hmm, det har jeg aldrig været ude for... på OpenBSD/FreeBSD anyway.

> Det forstår jeg ikke. Jeg starter processen (mldonkey) men jeg kan ikke
> stoppe den igen?

Når du starter en almindelig process fra en shell, så er det den pågældende
shell, der er parent process.
(Medmindre der er tale om en "daemon", i såfald adopterer init
(hovedprocessen) den med det samme.)

Et par gode utilities til at se proces-træet med er 'pstree' og 'whowatch'.

-mb



Heine Laursen (26-07-2002)
Kommentar
Fra : Heine Laursen


Dato : 26-07-02 00:31

In article <ahpvl8$t4l$1@sunsite.dk>, Martin Bundgaard wrote:
>> Det forstår jeg ikke. Jeg starter processen (mldonkey) men jeg kan ikke
>> stoppe den igen?
>
> Når du starter en almindelig process fra en shell, så er det den pågældende
> shell, der er parent process.
> (Medmindre der er tale om en "daemon", i såfald adopterer init
> (hovedprocessen) den med det samme.)

hmm, jeg starter mldonkey sådan: ./mldonkey > /dev/null &
Så det er vel en daemon? Og derfor jeg ikke kan dræbe den?

> Et par gode utilities til at se proces-træet med er 'pstree' og 'whowatch'.

pstree siger:|-login---bash-+-mldonkey

Den køre ikke lige under init, men hvis jeg loger ud, af shellen, forsvinder
processen ikke, men fortsætter.

Ahh, prøvede lige at logge ud, og nu ligger processen under init.
Konklutionen må blive at det er en daemon.

Så lærte jeg også noget nyt idag

whowatch har jeg ikke!

--
Mvh
Heine Laursen

Rasmus Bøg Hansen (26-07-2002)
Kommentar
Fra : Rasmus Bøg Hansen


Dato : 26-07-02 00:51

Heine Laursen wrote:

> In article <ahpvl8$t4l$1@sunsite.dk>, Martin Bundgaard wrote:
>>> Det forstår jeg ikke. Jeg starter processen (mldonkey) men jeg kan ikke
>>> stoppe den igen?
>>
>> Når du starter en almindelig process fra en shell, så er det den
>> pågældende shell, der er parent process.
>> (Medmindre der er tale om en "daemon", i såfald adopterer init
>> (hovedprocessen) den med det samme.)
>
> hmm, jeg starter mldonkey sådan: ./mldonkey > /dev/null &

Det betyder ikke nødvendigvis, at det er en dæmon. Den har stadig din shell
som forældreproces, medmindre den selv kobler sig af.

> Så det er vel en daemon? Og derfor jeg ikke kan dræbe den?

Man kan godt slå dæmoner ihjel. Så bliver de til zombieprocesser og der
ryddes op af init. Init rydder normalt så hurtigt op, at du ikke når at se
zombie-trinet.

Iøvrigt betyder 'dæmon' ikke nødvendigvis, at den har init som
forældreproces. Begrebet 'dæmon' bruges lidt i flæng om programmel, som
altid kører i baggrunden og som den almindelige bruger normalt ikke har
meget med at gøre.

/Rasmus

--
-- [ Rasmus "Møffe" Bøg Hansen ] ---------------------------------------
While Linux is larger than Emacs,
at least Linux has the excuse that it has to be.
--Linus Torvalds
----------------------------------[ moffe at amagerkollegiet dot dk ] --

Kent Friis (06-08-2002)
Kommentar
Fra : Kent Friis


Dato : 06-08-02 12:19

Den Fri, 26 Jul 2002 01:50:59 +0200 skrev Rasmus Bøg Hansen:
>Heine Laursen wrote:
>
>> In article <ahpvl8$t4l$1@sunsite.dk>, Martin Bundgaard wrote:
>>>> Det forstår jeg ikke. Jeg starter processen (mldonkey) men jeg kan ikke
>>>> stoppe den igen?
>>>
>>> Når du starter en almindelig process fra en shell, så er det den
>>> pågældende shell, der er parent process.
>>> (Medmindre der er tale om en "daemon", i såfald adopterer init
>>> (hovedprocessen) den med det samme.)
>>
>> hmm, jeg starter mldonkey sådan: ./mldonkey > /dev/null &
>
>Det betyder ikke nødvendigvis, at det er en dæmon. Den har stadig din shell
>som forældreproces, medmindre den selv kobler sig af.

Den vil altid have shell'en som forældreproces, indtil shell'en stopper.
Det er kun process-group (og TTY'en) den kan koble sig af.

Mvh
Kent
--
The frozen north will hatch a flightless bird,
who will spread his wings and dominate the earth
And cause an empire by the sea to fall
To the astonishment, and delight of all.

Rasmus Bøg Hansen (26-07-2002)
Kommentar
Fra : Rasmus Bøg Hansen


Dato : 26-07-02 00:46

Heine Laursen wrote:

> In article <ahpsqr$lna$1@sunsite.dk>, Martin Bundgaard wrote:
>> Hejsa.
>>
>>> Jeg sider her og undre mig, hvad man enlig kan gøre når man ikke kan slå
>> et
>>> program ihjæl med kill -9. Problmet er at mldonkey, kan sommetider finde
>>> på at gå fuldstændig i baglås efter start af programmet. Jeg skriver så
>>> ps -aux|grep mldonkey og finder pid. og så en kill -9 pid. Men
>>> ps -aux|grep mldonkey viser at programmet er der stadivæk. Endtil nu,
>>> har jeg løst problemet, ved at reboote, men det vil jeg nu helst undgå.
>>
>> Processen er en såkaldt 'zombie', og når du laver en 'ps aux' vil du
>> kunne se et 'Z' ud for den.
>
> Hmm Min maskine er ikke enig med dig!
>
> [heine@0x83a4911e mldonkey]$ ps -aux|grep mldonkey
> heine 1249 14.3 2.3 9168 7692 tty3 S 00:33 0:04 ./mldonkey
> heine 1253 0.0 0.1 1700 600 tty3 S 00:34 0:00 grep
> mldonkey
> [heine@0x83a4911e mldonkey]$

Og "kill -9 1249" virker ikke? Du *skal* kunne slå den ihjel, når den er i
state S (sleep). Hvis den er i state D venter den i et uafbrydeligt
systemkald. Har den samme PID bagefter (= er der startet en ny, da du slog
den gamle ihjel)?

> > Zombie processer er nærmest processer der er lukket "halvt" ned, og I
> > den
>> situation er det KUN parent-processen (dvs. den process som har startet
>> zombie'en) der kan lukke den helt ned.
>
> Det forstår jeg ikke. Jeg starter processen (mldonkey) men jeg kan ikke
> stoppe den igen?

Der er kun tre slags process slags processer, man ikke kan slå ihjel:

1) Kernetråde (genkendes ved at deres hukommelsesforbrug er 0)
2) Zombier (kan kun slås helt ned af forældreprocessen)
3) Processer i et uafbrydeligt systemkald (de afslutter dog, når de
returnerer).

Din mldonkey er ingen af disse og skal altså kunne lås ihjel på en eller
anden vis! Ellers er der tale om en fejl i kernen.

/Rasmus

--
-- [ Rasmus "Møffe" Bøg Hansen ] ---------------------------------------
[ Cancel Cancelled ]
- Pine
----------------------------------[ moffe at amagerkollegiet dot dk ] --

Heine Laursen (26-07-2002)
Kommentar
Fra : Heine Laursen


Dato : 26-07-02 01:18

In article <ahq2ke$5ib$1@carlsberg.amagerkollegiet.dk>, Rasmus Bøg Hansen wrote:
> Heine Laursen wrote:

>> Hmm Min maskine er ikke enig med dig!
>>
>> [heine@0x83a4911e mldonkey]$ ps -aux|grep mldonkey
>> heine 1249 14.3 2.3 9168 7692 tty3 S 00:33 0:04 ./mldonkey
>> heine 1253 0.0 0.1 1700 600 tty3 S 00:34 0:00 grep
>> mldonkey
>> [heine@0x83a4911e mldonkey]$
>
> Og "kill -9 1249" virker ikke? Du *skal* kunne slå den ihjel, når den er i
> state S (sleep). Hvis den er i state D venter den i et uafbrydeligt
> systemkald. Har den samme PID bagefter (= er der startet en ny, da du slog
> den gamle ihjel)?

Ja "kill -9 1249" dræber ikke mldonkey, og den skifter heller ikke pid.
Det er nu heller ikke den måde heg normalt afslutter programmet. Men ved
at telnette til det, og så afslutte derfra. Men når det går i baglås, får jeg
bare connection rejected når jeg prøver at telenette. og så er det jeg prøver
med kill -9 pid. Jeg mener heller ikke den ændre state (men er ikke sikker)

>> > Zombie processer er nærmest processer der er lukket "halvt" ned, og I
>> > den
>>> situation er det KUN parent-processen (dvs. den process som har startet
>>> zombie'en) der kan lukke den helt ned.
>>
>> Det forstår jeg ikke. Jeg starter processen (mldonkey) men jeg kan ikke
>> stoppe den igen?
>
> Der er kun tre slags process slags processer, man ikke kan slå ihjel:
>
> 1) Kernetråde (genkendes ved at deres hukommelsesforbrug er 0)
> 2) Zombier (kan kun slås helt ned af forældreprocessen)
> 3) Processer i et uafbrydeligt systemkald (de afslutter dog, når de
> returnerer).

den skriver og læser meget fra harddisken. Kan det ikke være et uafbrydelig
system kald? Den laver også en md4 checksum af nogne store filer, når den
starter op.

> Din mldonkey er ingen af disse og skal altså kunne lås ihjel på en eller
> anden vis! Ellers er der tale om en fejl i kernen.

Jeg bruger den nyeste fra Redhat 2.4.18-5

--
Mvh
Heine Laursen

Rasmus Bøg Hansen (26-07-2002)
Kommentar
Fra : Rasmus Bøg Hansen


Dato : 26-07-02 09:57

Heine Laursen wrote:

>> Og "kill -9 1249" virker ikke? Du *skal* kunne slå den ihjel, når den er
>> i state S (sleep). Hvis den er i state D venter den i et uafbrydeligt
>> systemkald. Har den samme PID bagefter (= er der startet en ny, da du
>> slog den gamle ihjel)?
>
> Ja "kill -9 1249" dræber ikke mldonkey, og den skifter heller ikke pid.
> Det er nu heller ikke den måde heg normalt afslutter programmet. Men ved
> at telnette til det, og så afslutte derfra. Men når det går i baglås, får
> jeg bare connection rejected når jeg prøver at telenette. og så er det jeg
> prøver med kill -9 pid. Jeg mener heller ikke den ændre state (men er ikke
> sikker)

Og den er stadig i state S? Giver kill nogen uddata?

> den skriver og læser meget fra harddisken. Kan det ikke være et
> uafbrydelig system kald? Den laver også en md4 checksum af nogne store
> filer, når den starter op.

Når den er i state S er den ikke i et uafbrydeligt systemkald. Befinder den
sig i et systemkald, er den i state D - og så vil den afslutte så snart
systemkaldet er afsluttet.

/Rasmus

--
-- [ Rasmus "Møffe" Bøg Hansen ] ---------------------------------------
Computers are like airconditioners:
They stop working properly if you open windows.
----------------------------------[ moffe at amagerkollegiet dot dk ] --

Heine Laursen (26-07-2002)
Kommentar
Fra : Heine Laursen


Dato : 26-07-02 14:16

In article <ahr2ta$k4o$1@carlsberg.amagerkollegiet.dk>, Rasmus Bøg Hansen wrote:
> Heine Laursen wrote:
>
>>> Og "kill -9 1249" virker ikke? Du *skal* kunne slå den ihjel, når den er
>>> i state S (sleep). Hvis den er i state D venter den i et uafbrydeligt
>>> systemkald. Har den samme PID bagefter (= er der startet en ny, da du
>>> slog den gamle ihjel)?
>>
>> Ja "kill -9 1249" dræber ikke mldonkey, og den skifter heller ikke pid.
>> Det er nu heller ikke den måde heg normalt afslutter programmet. Men ved
>> at telnette til det, og så afslutte derfra. Men når det går i baglås, får
>> jeg bare connection rejected når jeg prøver at telenette. og så er det jeg
>> prøver med kill -9 pid. Jeg mener heller ikke den ændre state (men er ikke
>> sikker)
>
> Og den er stadig i state S? Giver kill nogen uddata?

Jeg mener det, men er ikke sikker. Nej, kill skriver ikke noget til
konsolen, men om den skulde have fundet på ay skrive noget i log filerne
ved jeg ikke. Logwatch har ikke fundet noget.

>> den skriver og læser meget fra harddisken. Kan det ikke være et
>> uafbrydelig system kald? Den laver også en md4 checksum af nogne store
>> filer, når den starter op.
>
> Når den er i state S er den ikke i et uafbrydeligt systemkald. Befinder den
> sig i et systemkald, er den i state D - og så vil den afslutte så snart
> systemkaldet er afsluttet.

Okay. SVJV har den aldrig været i state D, men det er nu begranset hvor længe
jeg har monitoret den med top.

Det er ret tydeligt, at jeg mangler informationerne, om hvad der enlig sker
når efter jeg har forsøgt at dræbe processen, så jeg vil vende tilbage
med mere info næste gang den går i baglås.

Så Tak for hjælpen til jer alle. Jeg har lært noget mere om hvordan systemet
fungere, og det er enlig det jeg gerne vil.

Mange tak for det.

--
Mvh
Heine Laursen

Heine Laursen (26-07-2002)
Kommentar
Fra : Heine Laursen


Dato : 26-07-02 14:25

In article <slrnak2iqs.19d.gozar@0x83a4911e.arcnxx9.adsl-dhcp.tele.dk>,
Heine Laursen wrote:

> Okay. SVJV har den aldrig været i state D, men det er nu begranset hvor længe
> jeg har monitoret den med top.

Der var jeg hvist lidt for hurtig. Jeg har nu lige været vidne til at den
flyver rundt imellem state R og state D via top. Så det er vel forklaringen
på at jeg ikke kan dræbe processen!

Hvoffor siger ps -aux|grep mldonkey så altid state S ??

> Det er ret tydeligt, at jeg mangler informationerne, om hvad der enlig sker
> når efter jeg har forsøgt at dræbe processen, så jeg vil vende tilbage
> med mere info næste gang den går i baglås.
>
> Så Tak for hjælpen til jer alle. Jeg har lært noget mere om hvordan systemet
> fungere, og det er enlig det jeg gerne vil.
>
> Mange tak for det.
>

--
Mvh
Heine Laursen

Rasmus Bøg Hansen (26-07-2002)
Kommentar
Fra : Rasmus Bøg Hansen


Dato : 26-07-02 16:02

Heine Laursen wrote:

>> Okay. SVJV har den aldrig været i state D, men det er nu begranset hvor
>> længe jeg har monitoret den med top.
>
> Der var jeg hvist lidt for hurtig. Jeg har nu lige været vidne til at den
> flyver rundt imellem state R og state D via top. Så det er vel
> forklaringen på at jeg ikke kan dræbe processen!

State R (Running) betyder at processen er aktiv netop nu. State S (Sleeping)
betyder, at den venter på et eller andet, men ikke er i et systemkald.
State D betyder at den er i et uafbrydeligt systemkald. Den kan dræbes, når
den er i R eller S, men ikke i D. Forsøger man at dræbe den i D, dræbes
den, så snart den forlader D.

> Hvoffor siger ps -aux|grep mldonkey så altid state S ??

Jeg ved ikke nok om top hhv. ps's virkemåder til at kunne svare fornuftigt
på det...

/Rasmus

--
-- [ Rasmus "Møffe" Bøg Hansen ] ---------------------------------------
Drink wet cement: Get Stoned.
----------------------------------[ moffe at amagerkollegiet dot dk ] --

Søren Hansen (26-07-2002)
Kommentar
Fra : Søren Hansen


Dato : 26-07-02 09:00

On Fri, 26 Jul 2002 01:46:21 +0200, Rasmus Bøg Hansen wrote:
> Der er kun tre slags process slags processer, man ikke kan slå ihjel:
> 2) Zombier (kan kun slås helt ned af forældreprocessen)

Hm.. Tjah, eller alternativt kunne man slå forældreprocessen ihjel.

--
Søren Hansen Linuxkonsulent I/S
Open source specialist http://www.linuxkonsulent.dk
sha@linuxkonsulent.dk


Claus Rasmussen (26-07-2002)
Kommentar
Fra : Claus Rasmussen


Dato : 26-07-02 17:09

Heine Laursen wrote:

> Jeg sider her og undre mig, hvad man enlig kan gøre når man ikke kan slå
> et program ihjæl med kill -9. Problmet er at mldonkey, kan sommetider
> finde på at gå fuldstændig i baglås efter start af programmet. Jeg skriver
> så ps -aux|grep mldonkey og finder pid. og så en kill -9 pid. Men
> ps -aux|grep mldonkey viser at programmet er der stadivæk. Endtil nu, har
> jeg løst problemet, ved at reboote, men det vil jeg nu helst undgå.

Problemet kan skyldes flere ting. Zombie processer er nævnt, men dine
ps listninger viser, at det ikke er det, der er problemet.

En anden mulighed er, at den venter på at en child process terminerer.

Lav en 'ps axl' og kig på PID (process id) og PPID (parent process id)
og se, om der ikke er en process, er har æslet som parent. Efter du har
nuket den, kan du se, om du kan gøre det samme ved æslet.

-Claus




Søg
Reklame
Statistik
Spørgsmål : 177557
Tips : 31968
Nyheder : 719565
Indlæg : 6408885
Brugere : 218888

Månedens bedste
Årets bedste
Sidste års bedste