GNU/Linux >> Znalost Linux >  >> Linux

Jak zastavit „nepřerušitelný“ proces v Linuxu?

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ř).


Linux
  1. Jak snížit I/O procesu na maximální limit?

  2. Jak pozastavit/obnovit proces v Linuxu

  3. Jak mohu monitorovat využití I/O sítě na proces v systému Linux?

  1. Jak zabít proces zombie na Linuxu

  2. Jak se v Linuxu hlásí využití paměti?

  3. Jak zkontrolovat využití I/O disku na proces?

  1. Jak zastavit proces v MySQL

  2. Jak omezit využití CPU procesu v Linuxu

  3. Jak nainstalovat vtop na Linux