linux-l: kill -9 etc. geht nicht

Guenther Thomsen tho at thomsen.isdn.cs.tu-berlin.de
Sa Jul 11 01:44:49 CEST 1998


In message <35A63BE8.FB8F1A4B at walther.in-berlin.de>, Johannes Walther writes:
> Johannes Heinecke wrote:
> > 
> > > > wie kann man einen Prozess killen, der mit `ps aux'
> > > > unter STAT ein `D' stehen hat (``uninterruptable sleep'')?
> > > > kill -9, kill -15, kill -16, kill -KILL etc geht nicht.
> > > > Der Prozess geh"ort aber mir. Der Vaterprozess dazu (ein xterm)
> > > > ist schon weg, nur der Prozess selber nicht:
> > > >
> > > > > ps aux
> > > > USER       PID %CPU %MEM  SIZE   RSS TTY STAT START   TIME COMMAND
> > > > johannes  6100  0.0  0.1  1488   828  ?  D    14:30   0:00 csh /home/jo
> hannes/bin/test_set
> > > Neu booten
> > >
> > > Gruss
> > >
> > > Ihno Krumreich
> > genau dass wollte ich nicht tun. Gibt's den keinen anderen Weg so einen
> > Prozess loszuwerden??
> 
> Ob es funktioniert weiß ich nicht, aber könnte mir vorstellen das es
> geht:
> Erzeuege einen neuen Prozess mit dem Programm "test_set"
> 
> Der sollte jetzt vorhanden sein, die Shell (also den Vaterprozess) nicht
> beenden.
> Dann "killall test_set" 
> hm ob das geht oder dabei auch "nur" kill -9 aufgerufen wird...hm, warum
> nicht neu booten, das macht doch nichts... 
> 
 Nein, nein, nein. Das 'D' zeit an, das der Process im Kernel Mode
laeuft (bzw. schlaeft: 'uninteruptible sleeping') - ein I/O
(insb. swapping) oder auch lock Vorgang konnte (noch) nicht
abgeschlossen werden. Signale die dem Process gesendet werden, koennen
nicht verarbeitet (aber vorgemerkt) werden. Es ist voellig egal, wer,
mit welchem tool ihm welches Signal sendet - er wartet auf ein anderes
Ereignis.
 Wenn der Prozess in diesem Zustand verbleibt (im Normalfall soll das
nur _ganz_ kurz auftreten, so dass man nur selten Processe in diesem
Zustand sieht) ist das ein Kernel Bug oder ein Hardware Fehler (wenn er
nicht abgefangen wurde, obwohl es moeglich waere, ist es auch ein
Bug).

Guenther




Mehr Informationen über die Mailingliste linux-l