GNU/Linux >> Belajar Linux >  >> Linux

Apa yang harus dilakukan ketika Ctrl + C tidak dapat menghentikan proses?

Untuk memahami masalah mengapa Ctrl + C tidak berfungsi, sangat membantu untuk memahami apa yang terjadi saat Anda menekannya:

Kebanyakan shell mengikat Ctrl + C untuk "mengirim sinyal SIGINT ke program yang sedang berjalan di latar depan". Anda dapat membaca tentang berbagai sinyal melalui man signal:

 SIGINT        2       Term    Interrupt from keyboard

Program dapat mengabaikan sinyal itu, karena mereka juga dapat mengabaikan SIGTSTP:

 SIGTSTP   18,20,24    Stop    Stop typed at tty

(Yang dilakukan kebanyakan shell saat Anda menekan Ctrl + Z , oleh karena itu tidak dijamin berhasil.)

Ada beberapa sinyal yang tidak dapat diabaikan oleh proses:SIGKILL, SIGSTOP dan lainnya. Anda dapat mengirim sinyal ini melalui perintah kill. Jadi, untuk mematikan proses hang / zombieying Anda, cari saja ID proses (PID). Misalnya, gunakan pgrep atau ps lalu kill itu:

 % kill -9 PID

Jika Ctrl +C (SIGINT) tidak berfungsi, coba Ctrl +\ (SIGQUIT). Lalu coba Ctrl +Z (SIGTSTP). Jika itu mengembalikan Anda ke prompt shell, lakukan kill pada ID proses. (Ini default untuk sinyal SIGTERM, yang dapat Anda tentukan dengan kill -TERM . Di beberapa shell, Anda mungkin dapat menggunakan %1 untuk merujuk ke PID.) Jika tidak berhasil, buka terminal lain atau sesi SSH dan lakukan kill atau kill -TERM pada ID proses. Hanya sebagai pilihan terakhir harus Anda lakukan kill -KILL , alias kill -9 , karena tidak memberikan kesempatan pada proses untuk membatalkan secara bersih, menyinkronkan file yang terbuka, menghapus file sementara, menutup koneksi jaringan, dll.


Lihat tautan ini juga.

Ctrl +Z :menjeda proses.

Ctrl +C :dengan sopan minta proses untuk dimatikan sekarang.

Ctrl +\ :matikan tanpa ampun proses yang saat ini ada di latar depan


Linux
  1. Bagaimana Jika 'kill -9' Tidak Berfungsi?

  2. Linux – Kapan Saya Tidak Harus Membunuh -9 Proses?

  3. Proses Keturunan?

  1. Bagaimana saya bisa mematikan proses dengan nama, bukan PID?

  2. Apa itu proses yang tidak terputus?

  3. Apa yang mematikan proses saya dan mengapa?

  1. Apa efek CTRL + Z pada aplikasi unix\Linux

  2. Mengapa saya tidak bisa mematikan proses ini di Linux?

  3. Apa yang terjadi saat mengirim SIGKILL ke Proses Zombie di Linux?