GNU/Linux >> Belajar Linux >  >> Linux

Bunuh Perintah di Linux

Linux adalah sistem operasi yang hebat dan canggih, tetapi tidak sempurna. Sesekali, beberapa aplikasi mungkin mulai berperilaku tidak menentu dan menjadi tidak responsif atau mulai menghabiskan banyak sumber daya sistem. Aplikasi yang tidak responsif tidak dapat dimulai ulang karena proses aplikasi asli tidak pernah dimatikan sepenuhnya. Satu-satunya solusi adalah me-restart sistem atau mematikan proses aplikasi.

Ada beberapa utilitas yang memungkinkan Anda untuk menghentikan proses yang salah dengan kill yang paling umum digunakan.

kill Perintah #

kill adalah shell bawaan di sebagian besar shell turunan Bourne seperti Bash dan Zsh. Perilaku perintah sedikit berbeda antara shell dan /bin/kill yang berdiri sendiri dapat dieksekusi.

Gunakan type perintah untuk menampilkan semua lokasi di sistem Anda yang berisi kill :

type -a kill
kill is a shell builtin
kill is /bin/kill

Output di atas memberi tahu bahwa shell builtin memiliki prioritas di atas executable mandiri, dan digunakan setiap kali Anda mengetik kill . Jika Anda ingin menggunakan biner, ketikkan path lengkap ke file /bin/kill . Dalam artikel ini, kita akan menggunakan Bash bawaan.

Sintaks dari kill perintah mengambil bentuk berikut:

kill [OPTIONS] [PID]...

kill perintah mengirimkan sinyal ke proses tertentu atau kelompok proses, menyebabkan mereka bertindak sesuai dengan sinyal. Ketika sinyal tidak ditentukan, defaultnya adalah -15 (-TERM).

Sinyal yang paling umum digunakan adalah:

  • 1 (HUP ) - Muat ulang proses.
  • 9 (KILL ) - Matikan sebuah proses.
  • 15 (TERM ) - Menghentikan proses dengan anggun.

Untuk mendapatkan daftar semua sinyal yang tersedia, jalankan perintah dengan -l pilihan:

kill -l

Sinyal dapat ditentukan dalam tiga cara berbeda:

  1. Menggunakan nomor (mis., -1 atau -s 1 ).
  2. Menggunakan awalan “SIG” (mis., -SIGHUP atau -s SIGHUP ).
  3. Tanpa awalan “SIG” (mis., -HUP atau -s HUP ).

Perintah berikut setara satu sama lain:

kill -1 PID_NUMBERkill -SIGHUP PID_NUMBERkill -HUP PID_NUMBER

PID yang diberikan ke kill perintah dapat berupa salah satu dari berikut ini:

  • Jika PID lebih besar dari nol, sinyal dikirim ke proses dengan ID sama dengan PID .
  • Jika PID sama dengan nol, sinyal dikirim ke semua proses dalam grup proses saat ini. Dengan kata lain, sinyal dikirim ke semua proses milik GID shell yang memanggil kill memerintah. Gunakan ps -efj perintah untuk melihat ID grup proses (GID).
  • Jika PID sama dengan -1 , sinyal dikirim ke semua proses dengan UID yang sama dengan pengguna yang menjalankan perintah. Jika pengguna yang memanggil adalah root, sinyal dikirim ke semua proses kecuali init dan kill proses itu sendiri.
  • Jika PID kurang dari -1 , sinyal dikirim ke semua proses dalam grup proses eq dengan GID sama dengan nilai absolut PID .

Pengguna biasa dapat mengirim sinyal ke proses mereka sendiri, tetapi tidak ke proses milik pengguna lain, sedangkan pengguna root dapat mengirim sinyal ke proses pengguna lain.

Mengakhiri Proses Menggunakan kill Perintah #

Untuk menghentikan atau mematikan proses dengan kill perintah, pertama Anda perlu menemukan nomor ID proses (PID). Anda dapat melakukan ini menggunakan perintah yang berbeda seperti top , ps , pidof dan pgrep .

Katakanlah browser Firefox menjadi tidak responsif, dan Anda harus mematikan proses Firefox. Untuk menemukan PID browser gunakan pidof perintah:

pidof firefox

Perintah akan mencetak ID dari semua proses Firefox:

6263 6199 6142 6076

Setelah Anda mengetahui nomor proses, Anda dapat mematikan semuanya dengan mengirimkan TERM sinyal:

kill -9 6263 6199 6142 6076

Alih-alih mencari PID dan kemudian mematikan proses, Anda dapat menggabungkan perintah di atas menjadi satu:

kill -9 $(pidof firefox)

Memuat Ulang Proses Menggunakan kill Perintah #

Kasus penggunaan umum lainnya untuk kill adalah mengirim HUP signal, yang memberi tahu proses untuk memuat ulang pengaturannya.

Misalnya, untuk memuat ulang Nginx, Anda perlu mengirim sinyal ke proses master. ID proses dari proses master Nginx dapat ditemukan di nginx.pid file, yang biasanya terletak di /var/run direktori.

Gunakan cat perintah untuk menemukan PID master:

cat /var/run/nginx.pid
30251

Setelah Anda menemukan master PID, muat ulang pengaturan Nginx dengan mengetik:

sudo kill -1 30251

Perintah di atas harus dijalankan sebagai root atau pengguna dengan sudoprivileges.

Kesimpulan #

kill Perintah digunakan untuk mengirim sinyal ke proses. Sinyal yang paling sering digunakan adalah SIGKILL atau -9 , yang menghentikan proses yang diberikan.

Jika Anda memiliki pertanyaan atau masukan, jangan ragu untuk memberikan komentar.


Linux
  1. Perintah mv Linux

  2. Linux du perintah

  3. Perintah ip Linux

  1. Perintah cd Linux

  2. Bagaimana cara mematikan proses di Linux menggunakan perintah?

  3. bunuh Contoh Perintah di Linux

  1. Contoh Perintah renice di Linux

  2. Contoh Perintah pkill di Linux

  3. Bunuh proses java (di linux) dengan nama proses, bukan PID