Ketika suatu proses berperilaku tidak semestinya, terkadang Anda mungkin ingin menghentikan atau mematikannya. Dalam posting ini, kita akan mengeksplorasi beberapa cara untuk menghentikan proses atau aplikasi dari baris perintah serta dari antarmuka grafis, menggunakan gedit sebagai aplikasi sampel.
Menggunakan karakter baris perintah/penghentian
Ctrl + C
Satu masalah saat menjalankan gedit
dari baris perintah (jika Anda tidak menggunakan gedit &
) adalah bahwa itu tidak akan membebaskan prompt, sehingga sesi shell diblokir. Dalam kasus seperti itu, Ctrl+C (tombol Kontrol dalam kombinasi dengan 'C') sangat berguna. Itu akan menghentikan gedit
dan semua pekerjaan akan hilang (kecuali file telah disimpan). Ctrl+C mengirimkan SIGINT
sinyal ke gedit
. Ini adalah sinyal berhenti yang tindakan defaultnya adalah menghentikan proses. Ini menginstruksikan shell untuk menghentikan gedit
dan kembali ke loop utama, dan Anda akan mendapatkan prompt kembali.
$ gedit
^C
Ctrl + Z
Ini disebut karakter penangguhan . Ia mengirimkan SIGTSTP
sinyal untuk diproses. Ini juga merupakan sinyal berhenti, tetapi tindakan defaultnya bukanlah mematikan tetapi menghentikan proses.
Itu akan berhenti (membunuh/mengakhiri) gedit
dan kembalikan prompt shell.
$ gedit
^Z
[1]+ Stopped gedit
$
Setelah proses dihentikan (dalam hal ini, gedit
), tidak mungkin untuk menulis atau melakukan apa pun di gedit
. Di latar belakang, prosesnya menjadi pekerjaan . Ini dapat diverifikasi oleh jobs
perintah.
$ jobs
[1]+ Stopped gedit
jobs
memungkinkan Anda untuk mengontrol beberapa proses dalam satu sesi shell. Anda dapat menghentikan, melanjutkan, dan memindahkan pekerjaan ke latar belakang atau latar depan sesuai kebutuhan.
Mari kita lanjutkan gedit
di latar belakang dan membebaskan Prompt untuk menjalankan perintah lain. Anda dapat melakukannya menggunakan bg
perintah, diikuti dengan ID pekerjaan (perhatikan [1]
dari output jobs
di atas. [1]
adalah ID pekerjaan).
$ bg 1
[1]+ gedit &
Ini mirip dengan memulai gedit
dengan &,
:
$ gedit &
Menggunakan bunuh
kill
memungkinkan kontrol yang baik atas sinyal, memungkinkan Anda memberi sinyal pada suatu proses dengan menentukan nama sinyal atau nomor sinyal, diikuti dengan ID proses, atau PID.
Apa yang saya suka tentang kill
adalah bahwa ia juga dapat bekerja dengan ID pekerjaan. Mari kita mulai gedit
di latar belakang menggunakan gedit &
. Dengan asumsi saya memiliki ID pekerjaan gedit
dari jobs
perintah, mari kita kirim SIGINT
ke gedit
:
$ kill -s SIGINT %1
Perhatikan bahwa ID pekerjaan harus diawali dengan %
, atau kill
akan menganggapnya sebagai PID.
kill
dapat bekerja tanpa menentukan sinyal secara eksplisit. Dalam hal ini, tindakan default adalah mengirim SIGTERM
, yang akan menghentikan proses. Jalankan kill -l
untuk membuat daftar semua nama sinyal, dan gunakan man kill
perintah untuk membaca halaman manual.
Menggunakan killall
Jika Anda tidak ingin menentukan ID pekerjaan atau PID, killall
memungkinkan Anda menentukan proses berdasarkan nama. Cara paling sederhana untuk menghentikan gedit
menggunakan killall
adalah:
$ killall gedit
Ini akan mematikan semua proses dengan nama gedit
. Seperti kill
, sinyal defaultnya adalah SIGTERM
. Ia memiliki opsi untuk mengabaikan huruf besar/kecil menggunakan -I
:
$ gedit &
[1] 14852
$ killall -I GEDIT
[1]+ Terminated gedit
Untuk mempelajari lebih lanjut tentang berbagai bendera yang disediakan oleh killall
(seperti -u
, yang memungkinkan Anda untuk mematikan proses milik pengguna) periksa halaman manual (man killall
)
Menggunakan xkill
Pernahkah Anda mengalami masalah saat pemutar media, seperti VLC, berwarna abu-abu atau macet? Sekarang Anda dapat menemukan PID dan mematikan aplikasi menggunakan salah satu perintah yang tercantum di atas atau menggunakan xkill
.
xkill
memungkinkan Anda untuk membunuh jendela menggunakan mouse. Cukup jalankan xkill
di terminal, yang akan mengubah kursor mouse menjadi x atau ikon tengkorak kecil. Klik x pada jendela yang ingin Anda tutup. Hati-hati menggunakan xkill
, meskipun—seperti yang dijelaskan oleh halaman manualnya, ini bisa berbahaya. Anda telah diperingatkan!
Lihat halaman manual dari setiap perintah untuk informasi lebih lanjut. Anda juga dapat menjelajahi perintah seperti pkill
dan pgrep
.