GNU/Linux >> Belajar Linux >  >> Ubuntu

Mengapa Ctrl+\ (garis miring terbalik) Tidak Membunuh Proses Lagi?

Untuk sementara, Ctrl +\ bekerja seperti pesona. Sekarang, itu tidak mematikan prosesnya. Sebenarnya itu tidak menghasilkan apa-apa.

Contoh cara TIDAK bekerja:

[email protected]:~ $ sleep 10
^C

[exited with 130]
[email protected]:~ $ sleep 10
^\^\^\^\^\^\^\^\^\^\^\ 
[email protected]:~ $

Ctrl +C berhenti tidur seperti biasa, tetapi Ctrl +\ tidak, tapi seharusnya, kan?

Jawaban yang Diterima:

Apa Ctrl + \ lakukan adalah mengirim SIGQUIT ke proses latar depan. Beberapa pengembang ingin menggunakan peristiwa SIG* dengan cara yang mungkin tidak diharapkan atau biasa dilakukan oleh pengguna. Anda tidak menyebutkan programnya, tetapi mari kita lihat kasus saya dengan Ctrl + \ dan mplayer :

AO: [pulse] 44100Hz 2ch floatle (4 bytes per sample)
Video: no video
Starting playback...
A:   1.7 (01.7) of 0.0 (unknown)  0.4% 
// here I press Ctrl + \

MPlayer interrupted by signal 3 in module: play_audio
A:   1.0 (00.9) of 0.0 (unknown)  0.4% 

Exiting... (Quit)

Seperti yang Anda lihat, mplayer menangkap sinyal, tetapi jangan langsung keluar. Jika saya menggunakan Ctrl + C itu akan mengatakan “MPlayer terganggu oleh sinyal 2 di modul:play_audio” . Apa yang saya coba jelaskan adalah bahwa setiap program dapat menginterpretasikan sinyal sesuai keinginan mereka, tanpa mempedulikan apa yang seharusnya dilakukan. Anda harus meninjau dokumentasi. Juga, ingat bahwa SIGKILL atau 9 harus digunakan sebagai sumber daya terakhir. Anda harus memeriksa bahwa penekanan tombol juga dikirim ke proses, peta tombol sudah benar dan keyboard Anda terhubung.


Ubuntu
  1. Sinkronisasi Chromium Dengan Akun Google Tidak Berfungsi Lagi… Solusi?

  2. Emulator -avd Tidak Meluncurkan Perangkat Virtual?

  3. Mengapa pr_debug dari kernel Linux tidak memberikan hasil apa pun?

  1. Mengapa Ekspresi Reguler Bekerja Di X Tapi Tidak Di Y?

  2. Mengapa Cd Bukan Program?

  3. Mengapa forking proses saya menyebabkan file dibaca tanpa batas

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

  2. Mengapa Proses Pgid Anak Bukan Pid Orang Tua?

  3. Bagaimana Menemukan Id Proses (pid) Dari Program Terminal yang Berjalan?