[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Prozesse killen



Am Samstag 09 Februar 2008 schrieb Matthias Müller:
> Hallo,

Hallo Matthias,

> > > Nur als Idee:
> > > 	kill -9 $(ps -fe | grep prozessname | grep -v grep | cut -f 3 -d"
> > > ")
> >
> > im Prinzip auch. Was jedoch hier gar nicht funktioniert, da zwischen
> > den Feldern in das ps-Ausgabe mehrere Leerzeichen sind. Wie ich cut
> > dazu bringe, mehrere Whitespaces als Feldtrenner zu akzeptieren, weiß
> > ich noch nicht. Ich hab da schonmal gesucht ;-).
>
> Deswegen auch 'cut -f 3 -d" "'. Zwischen Name und pid sind zwei
> Leerzeichen. Aber dafür dibt es ja sed (wie Jens geschrieben hat)

Höhö, so genau hab ich nicht hingeschaut... aber da ist mir die sed Lösung 
oder meine awk-Variante doch lieber, als die Leerzeichen zu zählen, die 
in der spaltenweisen Ausgabe von ps auch mal unterschiedlich zahlreich 
sein können, je nachdem wie viele Stellen die PID hat...

> snip
>
> > Abgesehen sollte man sich jedoch auch überlegen, ob man dem Programm
> > wirklich ein SIGKILL schicken muss... ;). Das hört sich so ein wenig
> > nach Workaround an ;).
>
> Macht der Gewohnheit. Ich administriere beruflich ein paar
> AIX-Maschinen. Wenn da ein Prozess hängt, hilft etwas harmloseres
> meistens nicht mehr. Manchmal nicht mal der SIGKILL (fragt mich nicht
> warum, ist einfach so), in dem Fall lässt sich Maschine noch nicht mal
> mehr rebooten. So einen Fall hatte ich am Freitag kurz vor Feierabend
> auch mit einem Linux-Rechner.

Das passiert unter Linux, wenn ein Prozess im D State hängt (z.B. bei ps 
aux bei STAT). Ein solcher Prozess hat eine nicht unterbrechbare 
Kernel-Funktion aufgerufen und wartet auf deren Bearbeitung. Meistens 
passiert das, wenn der IO-Treiber, um eine Festplatte anzusprechen, 
länger braucht als gewöhnlich. Es kann auch in Verbindung mit SHFS 
passieren...

Einem solchen Prozess ist auch mit kill -9 nicht beizukommen. ps aux zeigt 
den Status des Prozesse an. Mit top sieht man bei großer 
Festplattenauslastung auch immer wieder einige Prozesse im D State, die 
dort jedoch nur kurz verweilen.

In dem Zusammenhang gibts auch noch das Big Kernel Lock (BKL). 
Problematische Treiber sperren den Kernel mitunter zulange. Vielleicht 
kommt das auch bei defekter Hardware mal vor.

Mehr weiß vielleicht noch der ein oder andere hier auf der Liste ;).

Ciao,
-- 
Martin 'Helios' Steigerwald - http://www.Lichtvoll.de
GPG: 03B0 0D6C 0040 0710 4AFA  B82F 991B EAAC A599 84C7

Attachment: signature.asc
Description: This is a digitally signed message part.


Reply to: