GNU/Linux >> LINUX-Kenntnisse >  >> Linux

Wie stoppe ich einen „unterbrechungsfreien“ Prozess unter Linux?

Einfache Antwort:Sie können nicht.

Längere Antwort:Der unterbrechungsfreie Schlaf bedeutet, dass der Prozess nicht durch Signale geweckt wird. Es kann nur durch das geweckt werden, worauf es wartet. Wenn ich solche Situationen bekomme zB. Bei CD-ROMs setze ich den Computer normalerweise zurück, indem ich Suspend-to-Disk und Resuming verwende.


Das Beenden eines unterbrechungsfreien Prozesses ist erfolgreich, nur nicht sofort. Der Prozess wird nicht verschwinden, bis er das Signal tatsächlich empfängt. Das Senden eines Signals allein reicht also nicht aus, um den Prozess loszuwerden, Sie müssen ihn auch aus dem ununterbrochenen Schlaf aufwecken.

Tanel Poder hat einen großartigen Leitfaden zur Analyse von D-State-Prozessen geschrieben. Es ist sehr typisch, dass dieser Zustand durch unvollständige I/O verursacht wird, z. Netzwerkfehler. slm hat einige sehr nützliche Hinweise für Superuser gepostet, wie man die Netzwerk-E/A entstört, und auch über das Problem selbst.

Persönlich stoße ich beim Umgang mit Windows auf VirtualBox und sogar mit Wein häufig auf dieses Problem, weil eine CD-ROM-E / A nie abgeschlossen wird (ich denke, es handelt sich um eine Art Disc-Präsenzprüfung). ATA-Geräte können zurückgesetzt werden, wodurch der Vorgang wahrscheinlich aufgehoben wird. Zum Beispiel verwende ich das folgende kleine Skript, um meine beiden optischen Laufwerke zurückzusetzen und die blockierten Prozesse zu entstören:

echo 1 > /sys/block/sr0/delete
echo 1 > /sys/block/sr1/delete
echo "- - -" > /sys/class/scsi_host/host7/scan

Der D-Zustand bedeutet im Grunde, dass der Prozess auf Platten-I/O oder andere Block-I/O wartet, die nicht unterbrochen werden können. Manchmal bedeutet dies, dass der Kernel oder das Gerät fieberhaft versucht, einen fehlerhaften Block zu lesen (insbesondere von einer optischen Platte). Manchmal bedeutet es, dass da noch etwas anderes ist.

Der Prozess kann nicht beendet werden, bis er den D-Zustand verlässt. Finden Sie heraus, worauf es wartet, und beheben Sie das Problem. Der einfache Weg ist ein Neustart. Manchmal hilft das Entfernen der fraglichen Festplatte, aber das kann ziemlich gefährlich sein:nicht behebbarer katastrophaler Hardwarefehler, wenn Sie nicht wissen, was Sie tun (sprich:Rauch kommt heraus).


Linux
  1. So beenden Sie einen Zombie-Prozess unter Linux

  2. So installieren Sie vtop unter Linux

  3. Wie beendet man einen Prozess unter Linux mit dem Befehl?

  4. Wie man einen Prozess unter Linux anhält/fortsetzt

  5. Wie wird die Speichernutzung in Linux gemeldet?

So beenden Sie einen Prozess oder stoppen ein Programm in Linux

So listen Sie laufende Prozesse in Linux auf

So beenden Sie einen Prozess in Linux

So beenden Sie Zombie-Prozesse in Linux

So begrenzen Sie die CPU-Auslastung eines Prozesses in Linux

Wie man einen Prozess unter Linux beendet