Perintah killall: menghentikan proses berdasarkan nama, sinyal -9, dan memasang psmisc
Perintah killall adalah perintah Linux yang memilih proses yang sedang berjalan berdasarkan nama program, bukan nomor proses (PID), lalu mengirimkan sinyal ke proses tersebut; jika Anda tidak menentukan sinyal, perintah ini mengirim SIGTERM (menurut manual resmi). Karena perintah ini menghentikan sekaligus semua proses dengan nama yang sama, di server AlmaLinux 9 kami lebih dulu memeriksa dengan pgrep dan ps empat proses yang dijalankan dari salinan sleep dengan nama lain; untuk file eksekusi yang namanya lebih dari 15 karakter, hanya 15 karakter pertama yang tersisa di nama proses.
Kami menjalankan killall hanya pada proses xxsleep yang dijalankan untuk pengujian dengan akun biasa di server Debian 12. Kotak hasil menampilkan output rpm, pgrep, ps, pidof, cat, dan kill yang dijalankan dengan akun root di server AlmaLinux 9.8, serta output killall yang dijalankan di server Debian 12. Nomor proses (PID), nama proses, path file eksekusi, dan nama akun diganti dengan nilai contoh.
1️⃣ Memasang perintah killall
killall termasuk dalam paket psmisc. Saat kami memeriksa dengan rpm paket pemilik /usr/bin/killall di server AlmaLinux 9.8, muncul versi psmisc 23.4.
rpm -qf --qf '%{NAME} %{VERSION}\n' /usr/bin/killallpsmisc 23.4Daftar file dari paket yang sama, yang dilihat dengan rpm -ql, juga berisi pstree dan fuser.
Jika muncul [command not found], yang berarti perintah tidak ditemukan, pasang paket psmisc. Di keluarga RHEL bentuknya [dnf install psmisc], dan di keluarga Debian [apt install psmisc]. Di server Debian 12, psmisc 23.6 sudah terpasang, dan killall ada di /usr/bin/killall.
Saat diperiksa di server AlmaLinux 9.8, pkill yang namanya mirip ada di paket procps-ng, dan kill adalah perintah bawaan shell.
2️⃣ Cara menggunakan perintah killall
Bentuk dasarnya adalah [killall nama proses]. Perintah ini mencari semua proses yang berjalan dengan nama yang diberikan lalu mengirim sinyal; jika Anda menulis beberapa nama, hal yang sama dilakukan untuk setiap nama (menurut manual resmi).
Karena proses dengan nama yang sama berhenti sekaligus, periksa dulu dengan pgrep apa yang sedang berjalan dengan nama itu. Kami menyalin sleep ke folder kerja dengan nama xxsleep-a1, xxsleep-a2, dan xxsleep-longname-x1, menjalankan xxsleep-a1 dua kali sehingga totalnya empat proses, lalu menampilkan nomor dan nama dengan -l.
pgrep -l xxsleep2141 xxsleep-a1
2142 xxsleep-a1
2150 xxsleep-a2
2155 xxsleep-longnamPada baris keempat, nama file eksekusinya xxsleep-longname-x1, tetapi nama prosesnya terpotong di xxsleep-longnam.
Dengan -a, seluruh baris perintah yang dijalankan akan muncul. Dua xxsleep-a1 dengan nama yang sama kami bedakan dari argumen detik di akhir, 300 dan 310.
pgrep -a xxsleep2141 /root/work/xxsleep-a1 300
2142 /root/work/xxsleep-a1 310
2150 /root/work/xxsleep-a2 320
2155 /root/work/xxsleep-longname-x1 330Untuk mencari hanya proses yang namanya sama persis, tambahkan -x. Hasil untuk xxsleep-a1 adalah dua nomor.
pgrep -x xxsleep-a12141
2142Untuk memeriksa nomornya saja dengan memasukkan satu nama apa adanya, gunakan pidof. Saat mencari xxsleep-a1, kedua nomor muncul dalam satu baris.
pidof xxsleep-a12142 2141ps hanya menampilkan proses yang namanya sama persis jika Anda menulis beberapa nama yang dipisahkan koma setelah -C.
ps -o pid,comm -C xxsleep-a1,xxsleep-a2 PID COMMAND
2141 xxsleep-a1
2142 xxsleep-a1
2150 xxsleep-a2Di server Debian 12, kami menjalankan empat proses dengan nama yang sama lalu menjalankan [killall xxsleep-a1]: tidak ada output dan selesai dengan kode keluar 0. Saat dicari lagi dengan pgrep, kedua xxsleep-a1 sudah hilang, dan yang tersisa hanya xxsleep-a2 dan xxsleep-longname-x1. Jika Anda menulis path yang berisi garis miring (/) sebagai pengganti nama, perintah ini memilih proses yang menjalankan file itu, apa pun namanya (menurut manual resmi).
Saat menulis nama yang tidak ada, xxsleep-zz, muncul baris dengan [no process found] di belakang nama, dan selesai dengan kode keluar 1. Kode keluar hanya 0 jika setidaknya satu proses dihentikan untuk setiap nama yang ditulis (menurut manual resmi).
killall xxsleep-zzxxsleep-zz: no process foundUntuk menghentikan satu proses saja yang nomornya sudah Anda ketahui, kirim sinyal hanya ke nomor itu dengan kill: Perintah kill Linux.
3️⃣ Opsi perintah killall
Saat nama proses yang dijalankan sebagai xxsleep-longname-x1 dibaca dari /proc/PID/comm, hanya 15 karakter pertama yang tersisa: xxsleep-longnam.
cat /proc/2155/commxxsleep-longnamKami menjalankan pgrep dengan xxsleep-longname yang panjangnya 16 karakter.
pgrep -a xxsleep-longnamePerintah selesai tanpa output dengan kode keluar 1, dan saat dicari lagi dengan xxsleep-longnam yang 15 karakter, proses itu muncul.
pgrep -l xxsleep-longnam2155 xxsleep-longnamJika killall menerima nama lebih dari 15 karakter dan ada proses yang nama lengkapnya tidak bisa dibaca, semua proses yang 15 karakter pertamanya cocok menjadi target; dengan -e, entri seperti itu dilewati (menurut manual resmi). Di server Debian 12, saat kami menulis 15 karakter pertama xxsleep-longnam dengan -e dan -v, muncul baris yang menyatakan tiga proses lain dengan nama terpotong di 15 karakter dilewati, lalu selesai dengan [no process found].
killall -e -v xxsleep-longnamkillall: skipping partial match quota_events_un(37)
killall: skipping partial match acpi_thermal_pm(112)
killall: skipping partial match ext4-rsv-conver(246)
xxsleep-longnam: no process foundSaat nama lengkap xxsleep-longname-x1 ditulis, setelah baris lewati yang sama muncul baris yang menunjukkan sinyal dikirim ke proses itu.
killall -e -v xxsleep-longname-x1killall: skipping partial match quota_events_un(37)
killall: skipping partial match acpi_thermal_pm(112)
killall: skipping partial match ext4-rsv-conver(246)
Killed xxsleep-longname-x1(2155) with signal 15Dengan -v, untuk setiap proses yang dikirimi sinyal muncul baris berisi nama, nomor, dan nomor sinyal.
killall -v xxsleep-a2Killed xxsleep-a2(2150) with signal 15-i menanyakan untuk setiap proses apakah proses itu akan dihentikan. Kami menjalankan lagi dua xxsleep-a1 dan memberikan y lalu n lewat input standar: kedua pertanyaan muncul berurutan dalam satu baris, dan hanya xxsleep-a1 pertama yang berhenti, sedangkan yang kedua tetap berjalan.
printf 'y\nn\n' | killall -i xxsleep-a1Kill xxsleep-a1(2171) ? (y/N) Kill xxsleep-a1(2172) ? (y/N)-u hanya memilih proses milik akun itu, dan jika nama dihilangkan, semua proses akun itu menjadi target. Saat xxsleep-a1 juga ditulis setelah nama akun, sinyal hanya dikirim ke xxsleep-a1 yang tersisa.
killall -v -u user xxsleep-a1Killed xxsleep-a1(2172) with signal 15-o dan -y memilih berdasarkan waktu mulai, dan waktunya ditulis dengan angka diikuti satuan s, m, h, d, w, M, atau y, seperti [-o 30m].
-r membaca nama sebagai ekspresi reguler yang diperluas. Saat pola ^xxsleep-a diberikan ke pgrep, muncul tiga proses yang diawali xxsleep-a.
pgrep -l '^xxsleep-a'2141 xxsleep-a1
2142 xxsleep-a1
2150 xxsleep-a2-w menunggu sambil memeriksa setiap detik sampai semua proses yang dikirimi sinyal hilang. Jika ada proses yang mengabaikan sinyal atau tertinggal sebagai zombie, penantiannya bisa tidak berakhir.
Tabel pertama di bawah memuat perintah pemeriksaan dan opsi killall yang benar-benar dijalankan dalam artikel ini, sedangkan opsi killall yang tidak dijalankan dikumpulkan di tabel kedua berdasarkan manual resmi.
📌 Memeriksa proses dan killall: hasil dari artikel ini
| Perintah | Fungsi | Hasil di artikel ini | |
|---|---|---|---|
| pgrep -l nama | Nomor dan nama proses yang namanya mengandung kata itu | Empat baris untuk xxsleep; nama panjang hanya terlihat sampai 15 karakter pertama, xxsleep-longnam | |
| pgrep -a nama | Nomor dan seluruh baris perintah | Dua xxsleep-a1 dengan nama yang sama dibedakan dari argumen akhir 300 dan 310 | |
| pgrep -x nama | Hanya nomor proses yang namanya sama persis | Untuk xxsleep-a1, dua baris: 2141 dan 2142 | |
| pidof nama | Nomor yang berjalan dengan nama itu, dalam satu baris | Untuk xxsleep-a1, 2142 2141 | |
| ps -o pid,comm -C nama | Nomor dan nama proses yang namanya sama persis; beberapa nama dipisahkan koma | Dua baris xxsleep-a1 dan satu baris xxsleep-a2 | |
| cat /proc/PID/comm | Nama proses (sampai 15 karakter pertama) | 2155 adalah xxsleep-longnam | |
| killall nama | SIGTERM ke proses dengan nama itu | Kedua xxsleep-a1 berhenti dengan kode keluar 0; nama yang tidak ada, xxsleep-zz, menghasilkan no process found dan kode keluar 1 | |
| killall -e nama | Nama lebih dari 15 karakter hanya jika nama lengkapnya cocok | xxsleep-longnam menghasilkan no process found, xxsleep-longname-x1 berhenti | |
| killall -v nama | Menampilkan hasil untuk setiap proses yang dikirimi sinyal | Killed xxsleep-a2(2150) with signal 15 | |
| killall -i nama | Meminta konfirmasi untuk setiap proses sebelum menghentikannya | Dengan y dan n, hanya xxsleep-a1 pertama yang berhenti | |
| killall -u nama akun | Hanya proses milik akun itu | Ditulis bersama nama, hanya xxsleep-a1 milik akun itu yang berhenti | |
| killall -9 nama | SIGKILL sebagai ganti SIGTERM | Killed xxsleep-a2(2173) with signal 9 |
📎 Opsi lainnya: menurut manual resmi
| Opsi | Fungsi | |
|---|---|---|
| -I, --ignore-case | Membandingkan nama tanpa membedakan huruf besar dan kecil | |
| -g, --process-group | Sinyal ke grup proses, bukan ke prosesnya (sekali per grup) | |
| -l, --list | Daftar nama sinyal yang dikenal | |
| -n, --ns PID | Hanya proses di namespace PID yang sama dengan PID itu; bawaannya semua namespace | |
| -o, --older-than waktu | Hanya proses yang dimulai sebelum waktu itu (satuan s, m, h, d, w, M, y) | |
| -q, --quiet | Tidak memberi tahu meskipun tidak ada proses yang dihentikan | |
| -r, --regexp | Membaca nama sebagai ekspresi reguler yang diperluas | |
| -s, --signal sinyal | Sinyal yang dikirim sebagai ganti SIGTERM | |
| -V, --version | Menampilkan informasi versi | |
| -w, --wait | Menunggu sampai semua proses yang dikirimi sinyal hilang | |
| -y, --younger-than waktu | Hanya proses yang dimulai setelah waktu itu | |
| -Z, --context pola | Hanya proses yang konteks keamanannya cocok dengan pola ekspresi reguler yang diperluas; ditulis sebelum argumen lain; nama boleh dihilangkan |
🔲 Simulator perintah killall
Simulator di bawah dimulai dengan daftar empat proses xxsleep ditambah xxsleep-a2 milik akun contoh user1. Ketuk chip untuk membandingkan baris mana yang hilang dari daftar dengan [killall -v], [-i], dan [-u]; teks output killall meniru output yang diperoleh di server Debian 12.
4️⃣ Sinyal killall
Sinyal yang akan dikirim ditulis dengan nama, seperti [-HUP] atau [-SIGHUP], dengan nomor, seperti [-1], atau setelah opsi -s (menurut manual resmi). [killall -9 nama proses] mengirim sinyal nomor 9, yaitu SIGKILL. SIGKILL adalah sinyal yang tidak bisa ditangkap atau diabaikan oleh proses (menurut manual resmi), sehingga proses berhenti tanpa sempat membereskan pekerjaannya. Karena itu, sinyal ini dikirim saat sinyal bawaan SIGTERM tidak menghentikan proses.
Di server Debian 12, saat -9 ditambahkan bersama -v pada xxsleep-a2 yang dijalankan lagi, muncul baris dengan nomor sinyal 9.
killall -9 -v xxsleep-a2Killed xxsleep-a2(2173) with signal 9Kami memeriksa nama dan nomor sinyal dengan [kill -l]. killall juga punya opsi -l yang menampilkan nama sinyal yang dikenalnya.
kill -l 1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP
6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1
11) SIGSEGV 12) SIGUSR2 13) SIGPIPE 14) SIGALRM 15) SIGTERM
16) SIGSTKFLT 17) SIGCHLD 18) SIGCONT 19) SIGSTOP 20) SIGTSTP
21) SIGTTIN 22) SIGTTOU 23) SIGURG 24) SIGXCPU 25) SIGXFSZ
26) SIGVTALRM 27) SIGPROF 28) SIGWINCH 29) SIGIO 30) SIGPWR
31) SIGSYS 34) SIGRTMIN 35) SIGRTMIN+1 36) SIGRTMIN+2 37) SIGRTMIN+3
38) SIGRTMIN+4 39) SIGRTMIN+5 40) SIGRTMIN+6 41) SIGRTMIN+7 42) SIGRTMIN+8
43) SIGRTMIN+9 44) SIGRTMIN+10 45) SIGRTMIN+11 46) SIGRTMIN+12 47) SIGRTMIN+13
48) SIGRTMIN+14 49) SIGRTMIN+15 50) SIGRTMAX-14 51) SIGRTMAX-13 52) SIGRTMAX-12
53) SIGRTMAX-11 54) SIGRTMAX-10 55) SIGRTMAX-9 56) SIGRTMAX-8 57) SIGRTMAX-7
58) SIGRTMAX-6 59) SIGRTMAX-5 60) SIGRTMAX-4 61) SIGRTMAX-3 62) SIGRTMAX-2
63) SIGRTMAX-1 64) SIGRTMAXSaat satu nomor dimasukkan, hanya nama sinyal itu yang muncul. Angka 15 yang dikirim killall secara bawaan adalah TERM, dan 9 yang dikirim dengan -9 adalah KILL.
kill -l 15TERMkill -l 9KILLJika Anda menulis nama sinyal yang tidak ada dalam daftar, muncul pesan berbentuk [FOO: unknown signal; killall -l lists signals.] (menurut manual resmi dan teks program).
🔢 FAQ & Konten yang Direkomendasikan
Pemeriksaan real-time
Perintah top Linux (memeriksa pemakaian CPU dan memori)
Perintah yang menampilkan secara real-time seberapa banyak CPU dan memori yang dipakai setiap proses.
Kontrol job
Latar belakang (Back Ground) dan latar depan (Fore Ground) di Linux: mengendalikan proses
Cara kontrol job untuk mengirim perintah ke latar belakang lalu membawanya kembali ke latar depan.
File yang terbuka
[Linux] Perintah lsof: menampilkan informasi file yang sedang dipakai
Perintah yang menampilkan file dan soket yang dibuka oleh proses beserta PID-nya.
ℹ️ Pemberitahuan Afiliasi
Konten di situs ini berisi tautan afiliasi. Jika pengunjung membeli produk atau layanan melalui tautan tersebut, situs ini menerima komisi dari penjual. Harga yang dibayar pembeli(turun saat ada diskon promo ↓), tidak naik karena hal ini. Harga, diskon, dan informasi stok yang ditampilkan berlaku pada saat penulisan dan bisa berbeda dengan kondisi sebenarnya, jadi pastikan kembali di situs penjual sebelum membeli. Pemilihan dan penilaian produk dibuat berdasarkan standar kami sendiri, dan ada tidaknya komisi tidak memengaruhi urutan maupun isi penilaian.