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:
- Menggunakan nomor (mis.,
-1
atau-s 1
). - Menggunakan awalan “SIG” (mis.,
-SIGHUP
atau-s SIGHUP
). - Tanpa awalan “SIG” (mis.,
-HUP
atau-s HUP
).
Perintah berikut setara satu sama lain:
kill -1 PID_NUMBER
kill -SIGHUP PID_NUMBER
kill -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 denganPID
. - 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 memanggilkill
memerintah. Gunakanps -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 dankill
proses itu sendiri. - Jika
PID
kurang dari-1
, sinyal dikirim ke semua proses dalam grup proses eq dengan GID sama dengan nilai absolutPID
.
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.