GNU/Linux >> Belajar Linux >  >> Linux

Cara mematikan proses atau menghentikan program di Linux

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 .


Linux
  1. Bagaimana Cara Memulai Ulang (atau Mengatur Ulang) Proses yang Berjalan Di Linux?

  2. Bagaimana Cara Membunuh Proses yang Berjalan pada Port Tertentu di Linux?

  3. Bagaimana cara mematikan proses di Linux menggunakan perintah?

  1. Bagaimana cara menghentikan proses 'tidak terputus' di Linux?

  2. Cara mengatur ID proses di Linux untuk program tertentu

  3. Cara menghentikan secara manual skrip Python yang berjalan terus menerus di linux

  1. Cara mematikan proses zombie di Linux

  2. Cara Menemukan dan Membunuh Proses Zombie di Linux

  3. Bagaimana cara menghentikan proses layar di linux?