GNU/Linux >> Belajar Linux >  >> Linux

Bagaimana cara menghentikan proses 'tidak terputus' di Linux?

Jawaban sederhana:Anda tidak bisa.

Jawaban yang lebih panjang:tidur tanpa gangguan berarti proses tidak akan dibangunkan oleh sinyal. Itu hanya bisa dibangunkan oleh apa yang ditunggunya. Ketika saya mendapatkan situasi seperti itu misalnya. dengan CD-ROM, saya biasanya mereset komputer dengan menggunakan suspend-to-disk dan melanjutkan.


Membunuh proses yang tidak terputus berhasil, itu tidak segera dilakukan. Proses tidak akan hilang sampai benar-benar menerima sinyal. Jadi mengirimkan sinyal saja tidak cukup untuk menghilangkan proses tersebut, Anda juga harus membangunkannya dari mode tidur tanpa gangguan.

Tanel Poder telah menulis panduan hebat untuk menganalisis proses status D. Sangat umum bahwa keadaan ini disebabkan oleh I/O yang tidak lengkap, mis. kesalahan jaringan. slm telah mengeposkan beberapa petunjuk yang sangat berguna tentang pengguna super tentang cara menghapus I/O jaringan, dan juga tentang masalah itu sendiri.

Secara pribadi, ketika berhadapan dengan Windows di VirtualBox, dan bahkan dengan anggur, saya sering mengalami masalah ini karena cdrom I/O yang tidak pernah selesai (saya rasa ini semacam pemeriksaan keberadaan disk). Perangkat ATA dapat diatur ulang, yang kemungkinan besar akan membatalkan prosesnya. Misalnya, saya menggunakan skrip kecil berikut untuk menyetel ulang kedua drive optik saya, membatalkan proses yang diblokirnya:

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

Status D pada dasarnya berarti bahwa proses sedang menunggu disk I/O, atau blok I/O lain yang tidak dapat diinterupsi. Terkadang ini berarti kernel atau perangkat dengan tergesa-gesa mencoba membaca blok yang buruk (terutama dari disk optik). Terkadang itu berarti ada hal lain.

Proses tidak dapat dimatikan sampai keluar dari status D. Cari tahu apa yang ditunggu dan perbaiki itu. Cara mudahnya adalah dengan melakukan reboot. Terkadang menghapus disk yang dimaksud membantu, tetapi itu bisa agak berbahaya:kerusakan perangkat keras yang tidak dapat diperbaiki jika Anda tidak tahu apa yang Anda lakukan (baca:asap keluar).


Linux
  1. Bagaimana Anda melakukan non-blocking console I/O di Linux di C?

  2. Bagaimana cara menghentikan proses layar di linux?

  3. Bagaimana cara membersihkan cache I/O disk di Linux?

  1. Cara mematikan proses zombie di Linux

  2. Cara Menjeda/Melanjutkan Proses di Linux

  3. Bagaimana penggunaan memori dilaporkan di Linux?

  1. Cara Menghentikan Proses dalam MySQL

  2. Cara Membatasi Penggunaan CPU Suatu Proses Di Linux

  3. Cara menginstal vtop di Linux