Jednoduchá odpověď:nemůžete.
Delší odpověď:nepřerušitelný spánek znamená, že proces nebude probuzen signály. Probudit se dá jen tím, na co čeká. Když se dostanu do takových situací např. s CD-ROM obvykle resetuji počítač pomocí uspání na disk a obnovením.
Zabití nepřerušitelného procesu je úspěšné, jen to neudělá okamžitě. Proces nezmizí, dokud skutečně nepřijme signál. Takže samotné odeslání signálu k odstranění procesu nestačí, musíte ho také probudit z nepřerušitelného spánku.
Tanel Poder napsal skvělého průvodce pro analýzu procesů ve stavu D. Je velmi typické, že tento stav je způsoben neúplnými I/O, např. chyba sítě. slm zveřejnil několik velmi užitečných odkazů na superuživatele, jak odblokovat I/O sítě, a také o problému samotném.
Osobně se při práci s Windows na VirtualBoxu a dokonce i s vínem často setkávám s tímto problémem kvůli I/O cdrom, který se nikdy nedokončí (myslím, že je to nějaká kontrola přítomnosti disku). Zařízení ATA lze resetovat, což pravděpodobně proces odblokuje. Například používám následující malý skript k resetování obou svých optických jednotek a odblokování procesů, které blokují:
echo 1 > /sys/block/sr0/delete
echo 1 > /sys/block/sr1/delete
echo "- - -" > /sys/class/scsi_host/host7/scan
Stav D v podstatě znamená, že proces čeká na diskový vstup/výstup nebo jiný blokový vstup/výstup, který nelze přerušit. Někdy to znamená, že se jádro nebo zařízení horečně pokouší číst špatný blok (zejména z optického disku). Někdy to znamená, že je tu něco jiného.
Proces nelze zabít, dokud se nedostane ze stavu D. Zjistěte, na co čeká, a opravte to. Nejjednodušší způsob je restartovat. Někdy pomůže odstranění příslušného disku, ale to může být poměrně nebezpečné:neopravitelné katastrofické selhání hardwaru, pokud nevíte, co děláte (čti:vychází kouř).