Cara Kill Proses di Linux dari Command-Line Menggunakan Berbagai Perintah
Di Linux, mengelola proses yang sedang berjalan bisa membantu menjaga kondisi dan performa sistem. Dalam hal ini, Anda mungkin perlu menghentikan atau ‘kill’ proses guna menghemat resource atau mengatasi aplikasi yang tidak merespons.
Namun, Anda perlu berhati-hati karena menghentikan proses yang tidak tepat bisa berujung pada hilangnya data atau sistem yang tidak stabil.
Jangan khawatir! Di artikel ini, kami akan menjelaskan berbagai cara untuk mematikan proses di Linux dengan aman. Anda akan mempelajari perintah kill, pkill, dan killall untuk memastikan performa yang optimal bagi sistem Linux Anda. Yuk, lanjutkan membaca tutorialnya!
Persiapan Awal
Sebelum mulai mengikuti langkah-langkah dalam panduan ini, pastikan Anda sudah menyiapkan hal-hal berikut:
- Sistem berbasis Linux. Anda memerlukan komputer atau server yang menjalankan salah satu distribusi Linux. Apabila belum memilikinya, Anda bisa mendapatkan VPS Linux dari Hostinger.
- Terminal atau akses SSH. Buka terminal di sistem lokal Anda atau gunakan aplikasi SSH seperti PuTTY untuk membuat koneksi remote ke server Linux Anda.
- Akses root atau izin yang sesuai. Sebagian besar perintah untuk menghentikan proses Linux memerlukan hak akses root atau superuser. Pastikan Anda memiliki izin tersebut untuk menjalankannya.
- Tool yang sudah terinstal. Pastikan Anda sudah menginstal tool dan perintah yang diperlukan. Untuk memverifikasinya, jalankan salah satu perintah berikut ini:
sudo apt-get install procps x11-utils # untuk distribusi berbasis Debian
sudo yum install procps-ng xorg-x11-apps # untuk distribusi berbasis Red Hat
Cara Menemukan Proses di Linux
Pertama, Anda harus menemukan proses yang benar agar tidak menghentikan operasi sistem penting secara tidak sengaja. Berikut adalah beberapa perintah untuk menemukan detail proses yang sedang berjalan di Linux:
Menggunakan Perintah ps
Perintah ps menyediakan daftar lengkap proses yang sedang berjalan dan detailnya, seperti user, ID proses (PID), penggunaan CPU dan memori, dan perintah yang memulai proses tersebut.
Berikut adalah syntax dasarnya:
ps [opsi]
Anda bisa menambahkan opsi berikut ke perintah ini:
- -a – menampilkan informasi tentang semua user.
- -u – menyertakan output user-oriented.
- -x – menampilkan proses tanpa terminal pengontrol.
Misalnya, kalau Anda menjalankan perintah berikut:
ps -aux
Anda akan melihat output seperti ini:
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.1 169364 8824 ? Ss Jul08 0:05 /sbin/init
root 2 0.0 0.0 0 0 ? S Jul08 0:00 [kthreadd]
...
Menemukan PID dengan Perintah pidof
Perintah pidof berfungsi untuk menemukan PID proses berdasarkan nama. Perintah ini sangat membantu kalau Anda sudah mengetahui nama proses yang dimaksud.
pidof [opsi] [program]
Beberapa opsi yang bisa digunakan untuk perintah pidof adalah:
- -c – hanya menampilkan proses direktori root yang sama.
- -o – menghilangkan PID tertentu.
- -s – single shot (akan menampilkan PID pertama).
- -x – skrip juga (ini akan mengembalikan proses yang telah dimulai oleh skrip).
Misalnya, untuk mendapatkan PID sshd, jalankan:
pidof sshd
Apabila hanya ada satu instance yang berjalan, outputnya akan menampilkan satu PID:
1234
Namun, kalau ada lebih dari satu instance, outputnya akan berupa beberapa PID:
1234 5678
Menemukan PID dengan Perintah pgrep
Perintah pgrep menyediakan cara yang lebih canggih untuk menemukan proses. Perintah ini menampilkannya berdasarkan kriteria pemilihan tertentu yang bisa mencocokkan nama proses, yang disebut pola.
pgrep [opsi] [pola]
Berikut ini beberapa opsi umum yang bisa Anda tambahkan:
- -f – melakukan pencocokan dengan command-line lengkap.
- -l – mencantumkan nama proses dan ID-nya.
- -n – memilih hasil terbaru dari proses pencocokan.
- -o – memilih hasil terlama dari proses pencocokan.
- -u – hanya mencocokkan proses yang ID user efektifnya terdaftar.
- -x – hanya mencocokkan proses yang nama atau command-linenya sama persis dengan pola apabila opsi -f ditentukan.
Sebagai contoh, untuk menampilkan nama dan PID dari semua proses yang dimiliki oleh user john, Anda bisa menggunakan:
pgrep -lu john
Perintah di atas akan menghasilkan:
1234 nama_proses_1
5678 nama_proses_2
...
Melihat Proses yang Berjalan dengan Perintah top
Perintah top menyediakan tampilan yang interaktif dan real-time dari proses yang sedang berjalan. Perintah ini menunjukkan PID, user, jumlah memori dan daya CPU yang digunakan setiap proses, dan waktu berjalannya.
Untuk melihat daftar semua proses yang aktif, jalankan:
top
Berikut output yang akan Anda lihat:
top - 15:37:58 up 2:13, 2 users, load average: 0.00, 0.01, 0.05
Tasks: 95 total, 1 running, 94 sleeping, 0 stopped, 0 zombie
%Cpu(s): 0.0 us, 0.0 sy, 0.0 ni, 100.0 id, 0.0 wa, 0.0 hi, 0.0 si, 0.0 st
KiB Mem: 4045860 total, 3810124 free, 140408 used, 94808 buff/cache
KiB Swap: 2097148 total, 2097148 free, 0 used. 3643028 avail Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 169364 8824 6508 S 0.0 0.2 0:05.14 systemd
2 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kthreadd
...
Untuk keluar dari antarmuka top, tekan Q.
Memahami Sinyal Perintah Kill
Sinyal perintah kill adalah pesan yang dikirim pada proses guna memberinya instruksi untuk melakukan tindakan tertentu. Sinyal ini merupakan komponen dasar sistem operasi berbasis Unix, yang memungkinkan pengguna dan program mengontrol proses secara efektif.
Anda bisa melihat semua sinyal yang tersedia di Linux dengan perintah di bawah ini:
kill -l
Perintah ini akan mencantumkan semua sinyal beserta nomor dan nama yang sesuai, seperti:
- SIGTERM (Signal 15). Sinyal ini meminta proses untuk dihentikan. Proses bisa menangkap sinyal ini, melakukan operasi pembersihan, lalu keluar. Secara default, perintah kill mengirimkan SIGTERM kalau tidak ada sinyal lain yang ditentukan.
- SIGKILL (Signal 9). Sinyal ini menghentikan suatu proses secara paksa. Proses tidak bisa menangkap atau mengabaikan sinyal ini sehingga proses dihentikan secara langsung. Hanya gunakan sinyal ini sebagai pilihan terakhir kalau suatu proses tidak merespons SIGTERM.
- SIGINT (Signal 2). Biasanya dikirim ketika Anda menekan Ctrl + C di terminal. Sinyal ini menginterupsi proses dan biasanya digunakan untuk menghentikan proses yang berjalan di latar depan (foreground).
- SIGHUP (Signal 1). Dikirim pada proses ketika terminal pengontrol ditutup dan sering digunakan untuk memuat ulang file konfigurasi.
- SIGQUIT (Signal 3). Menyebabkan proses dihentikan dan menghasilkan file core dump untuk debugging.
- SIGSTOP (Signal 19). Sementara menjeda proses tanpa menghentikannya, mirip dengan menekan Ctrl + Z di terminal.
- SIGCONT (Signal 18). Melanjutkan proses yang dihentikan oleh SIGSTOP atau Ctrl + Z.
Misalnya, untuk menghentikan proses dengan SIGTERM, jalankan perintah berikut:
kill -15 [PID]
Kenapa Harus Memilih Sinyal yang Sesuai?
Menggunakan sinyal kill yang tepat sesuai kasus penggunaan dan dampak yang diinginkan akan memastikan proses dihentikan secara terkontrol dan bisa diprediksi, terutama saat menangani tugas-tugas latar belakang.
Contohnya, sinyal SIGTERM lebih cocok untuk kontrol proses yang aman, karena proses akan menyimpan status dengan hati-hati lalu keluar. SIGKILL, meskipun praktis, harus digunakan dengan cermat karena bisa menyebabkan kehilangan atau kerusakan data.
Saran Bacaan
Yuk, simak artikel kami lainnya tentang perintah Linux yang paling sering digunakan untuk membantu Anda menggunakan sistem operasi Linux secara lebih efektif dan optimal!
Cara Kill Proses di Linux
Di bagian ini, kami akan menjelaskan beberapa cara menghentikan proses di Linux untuk berbagai contoh penggunaan.
Cara Menghentikan Satu Proses dengan PID
Apabila sudah mengetahui PID proses yang ingin dihentikan, Anda bisa menggunakan perintah kill Linux untuk mengirim sinyal. Berikut syntax dasarnya:
kill [sinyal] PID
Misalnya, untuk memberikan instruksi agar proses diakhiri dengan sinyal SIGTERM default dan PID 1234, jalankan:
kill -15 1234
Apabila proses tidak merespons SIGTERM, coba gunakan sinyal SIGKILL untuk menghentikannya secara paksa:
kill -9 1234
Anda juga bisa mengirim sinyal lain berdasarkan kebutuhan spesifik, seperti:
kill -2 1234 # Mengirimkan SIGINT
kill -1 1234 # Mengirimkan SIGHUP
Cara Menghentikan Beberapa Proses
Mungkin, ada situasi ketika Anda perlu menghentikan beberapa proses secara bersamaan. Nah, perintah kill juga bisa mengirim sinyal ke beberapa PID sekaligus.
Namun, Anda perlu berhati-hati karena beberapa proses mungkin bergantung pada proses lainnya. Selain itu, menghentikan proses utama juga bisa menghentikan proses lainnya.
Syntax dasar untuk menghentikan beberapa proses adalah:
kill [sinyal] PID1 PID2 PID3
Berikut contoh menghentikan proses dengan PID 1234, 5678, dan 91011 menggunakan SIGTERM:
kill -15 1234 5678 91011
Untuk mengirim sinyal ke semua proses dalam grup, gunakan PID negatif dari awalan utama grup:
kill -15 -1234
Perintah di atas akan menghentikan semua proses dalam grup yang diawali oleh PID 1234.
Menggunakan Perintah pkill
Anda bisa menggunakan pkill untuk menghentikan proses berdasarkan namanya tanpa harus mengetahui PID proses tersebut. Perintah ini bisa menjadi alternatif yang lebih mudah daripada perintah kill.
Selain itu, pkill juga lebih cepat untuk diketik dan dieksekusi, terutama saat menangani beberapa instance proses yang sama.
Syntax dasar pkill adalah sebagai berikut:
pkill [sinyal] [nama proses]
Misalnya, untuk menghentikan proses bernama nginx, jalankan:
pkill -SIGTERM nginx
Apabila Anda ingin menghentikan proses yang dimiliki oleh user tertentu, jalankan:
pkill -u john
Sebagai contoh, untuk mengakhiri proses yang terkait dengan terminal pts/1:
pkill -t pts/1
Anda juga bisa menghentikan semua proses dalam grup proses tertentu, misalnya PGID 1234:
pkill -g 1234
Untuk menghentikan instance terbaru atau terlama suatu proses, ketik perintah berikut:
pkill -n nginx # Menghentikan instance terbaru nginx
pkill -o nginx # Menghentikan instance terlama nginx
Anda juga bisa menggabungkan beberapa opsi untuk mencocokkan proses berdasarkan kriteria tertentu. Misalnya, untuk menghentikan beberapa proses dari user john pada terminal pts/1 di grup proses 1234 sekaligus, jalankan perintah berikut:
pkill -u john -t pts/1 -g 1234
Menggunakan Perintah killall
Perintah killall berguna untuk menghentikan semua instance proses berdasarkan namanya, dan bisa menargetkan proses berdasarkan durasi, user, dan waktu berjalannya.
Perintah ini lebih efektif untuk mengelola proses yang namanya sama di seluruh sistem, daripada menggunakan kill untuk proses individual dan pkill untuk mengelola beberapa instance proses tertentu.
Syntax dasar perintah killall adalah:
killall [opsi] [nama_proses]
Berikut beberapa contoh penggunaan utamanya:
killall nginx # Menghentikan semua instance nginx
killall -s SIGKILL nginx # Menghentikan paksa semua instance nginx
killall -u john nginx # Menghentikan semua proses nginx yang dimiliki oleh user john
Apabila Anda ingin menghentikan proses yang sudah berjalan selama durasi tertentu:
killall -o 1h nginx
Perintah di atas akan menghentikan semua proses nginx yang berjalan lebih dari satu jam.
Untuk menghentikan semua instance proses kecuali proses tertentu:
killall -v -I nginx
Anda bisa mengecualikan proses nginx tertentu agar tidak dihentikan dengan perintah di atas.
Selain itu, untuk menghentikan proses berdasarkan beban CPU atau penggunaan memori, jalankan:
killall -i -s SIGKILL nginx
Perintah ini akan mengirimkan prompt interaktif sebelum menghentikan setiap proses nginx sehingga Anda bisa mengonfirmasi atau menolak setiap tindakan.
Menggunakan Perintah xkill
Perintah xkill dimaksudkan untuk sistem berbasis GUI, seperti laptop yang menggunakan Linux. Dengan perintah ini, Anda bisa mematikan aplikasi yang berhenti bekerja atau tidak merespons perintah penghentian standar dengan sekali klik.
Berikut adalah beberapa contoh penggunaan xkill yang optimal:
- Aplikasi yang tidak merespons. Aplikasi berhenti merespons dan Anda tidak bisa menutupnya menggunakan metode standar.
- Elemen GUI yang berhenti bekerja. Elemen GUI tertentu seperti jendela atau dialog berhenti bekerja dan tidak bisa menerima interaksi pengguna.
- Penghentian cepat. Saat Anda perlu menghentikan jendela atau aplikasi tertentu segera tanpa harus mencari PID-nya.
Untuk menggunakan xkill, masukkan perintah ini di terminal Anda:
xkill
Setelah menjalankan perintah ini, kursor mouse Anda akan berubah menjadi ikon ×. Kemudian, pindahkan kursor ke jendela aplikasi yang tidak merespons, lalu klik kanan jendela tersebut untuk menghentikan proses yang dipilih.
Atau, kalau Anda mengetahui ID jendela aplikasi yang tidak merespons, ketik:
xkill -id <id_jendela>
Dengan perintah ini, Anda bisa menyasar dan menghentikan jendela tertentu secara langsung.
Perlu diketahui bahwa xkill tidak mendukung penghentian proses berdasarkan kelas atau nama. Namun, Anda bisa menggunakan tool lain untuk mendapatkan hasil serupa. Misalnya, gunakan wmctrl untuk mencantumkan daftar jendela dan ID-nya, lalu jalankan xkill dengan ID yang sesuai.
Untuk menginstal wmctrl, jalankan:
sudo apt-get install wmctrl
Setelah selesai, cantumkan semua jendela dan ID-nya:
wmctrl -l
Output akan terlihat seperti ini:
0x03c00003 0 hostname Firefox
0x04a00004 0 hostname Terminal
0x05000005 0 hostname Code
Kemudian jalankan xkill dengan ID yang dimaksud, misalnya:
xkill -id 0x03c00003
Menggunakan Perintah top
Terakhir, perintah top menyediakan tampilan interaktif secara real-time tentang penggunaan resource dan proses yang sedang berjalan. Perintah ini berguna untuk mengidentifikasi dan menghentikan proses yang menggunakan resource berlebih atau berhenti merespons.
Seperti yang tadi dijelaskan, Anda bisa mengetik top di terminal untuk memulainya. Untuk menelusuri daftar proses, gunakan tombol panah. Tekan Shift + P untuk mengurutkan proses berdasarkan penggunaan CPU, atau Shift + M berdasarkan penggunaan memori.
...
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 169364 8824 6508 S 0.0 0.2 0:05.14 systemd
512 user 20 0 120364 6024 2508 S 1.0 0.1 0:02.04 firefox
789 user 20 0 140364 7624 3208 R 2.0 0.3 0:03.22 chrome
...
Setelah Anda mengidentifikasi proses yang ingin diakhiri, tekan K.
Perintah top akan meminta Anda memasukkan PID proses yang ingin dihentikan. Kemudian, Anda perlu menentukan sinyal yang akan dikirim pada proses tersebut.
Tekan Enter untuk mengirim sinyal SIGTERM default, atau ketik nomor sinyal lainnya kalau diperlukan.
Misalnya, untuk menghentikan proses chrome dengan PID 789 menggunakan SIGKILL:
k
PID to kill: 789
Send signal (15): 9
Selain itu, untuk melihat proses yang dimiliki oleh user tertentu, awali perintah top dengan opsi -u seperti berikut ini:
top -u john
Anda juga bisa menyesuaikan kolom yang ditampilkan dalam perintah top dengan menekan F. Dengan cara ini, Anda bisa menambah atau menghapus kolom dan mengurutkannya berdasarkan berbagai kriteria.
Kesimpulan
Melalui artikel ini, Anda telah mempelajari berbagai metode untuk menghentikan proses di Linux, termasuk menggunakan perintah kill, pkill, killall, xkill, dan top. Setiap perintah menyediakan fungsi yang berbeda, jadi pilihlah yang paling sesuai kebutuhan Anda.
Selalu pastikan Anda mengelola proses dengan hati-hati untuk menjaga performa dan kestabilan sistem. Setelah memahami perintah-perintah tersebut, Anda pun bisa secara efektif menangani aplikasi yang berhenti merespons dan mengoptimalkan penggunaan resource sistem Anda.
Terakhir, selalu cek lagi proses yang Anda hentikan untuk menghindari masalah sistem yang tidak disengaja dan memastikan sistem Linux Anda berjalan dengan lancar. Selamat mencoba dan semoga berhasil!
Tanya Jawab (FAQ) Cara Kill Proses di Linux
Bagian ini akan menjawab beberapa pertanyaan umum tentang menghentikan proses di Linux.
Proses Apa Saja yang Bisa Dihentikan di Linux?
Anda bisa menghentikan proses user dan sistem di Linux. Proses user yang dimiliki oleh pengguna umumnya bisa dihentikan tanpa masalah. Proses sistem yang dimiliki oleh sistem atau user root memerlukan izin root untuk dihentikan dan harus ditangani dengan hati-hati, karena bisa menyebabkan kegagalan sistem.
Apa Perbedaan Perintah kill dan killall?
Perintah kill memerlukan PID dan menghentikan proses tertentu, yang berguna untuk kontrol yang lebih spesifik. Sementara itu, perintah killall menghentikan semua instance proses berdasarkan nama sehingga lebih fleksibel untuk mengelola proses dengan nama yang sama di seluruh sistem.
Bagaimana Cara Menemukan PID Proses untuk Dihentikan?
Anda bisa menemukan PID proses menggunakan perintah ps, pidof, pgrep, atau top. Misalnya, gunakan ps aux, pidof [nama_proses], pgrep [nama_proses], atau top untuk mencantumkan ID dan detail proses.