Menggunakan Perintah killall dan kill Di FreeBSD
· 2 min read · Label UnixBSDAnda mungkin pernah menghadapi situasi ketika menjalankan sebuah aplikasi, tiba-tiba aplikasi atau sistem Anda menjadi tidak responsif. Solusinya, Anda mencoba untuk me-restart aplikasi tersebut dan Anda harus menutupnya terlebih dahulu.
Namun, jika aplikasi yang Anda tutup gagal berhenti atau dimatikan sepenuhnya, Anda tidak akan dapat memulainya lagi. Ya, kita semua pernah menghadapi situasi seperti ini setidaknya sekali saat menjalankan sistem komputer. Untuk mengatasi masalah tersebut, Anda harus menghentikan proses aplikasi Anda yang tidak berjalan. Namun sekarang pertanyaannya adalah bagaimana? Dalam artikel ini, Anda akan memahami dua pendekatan berbeda untuk mematikan semua proses pada sistem operasi FreeBSD.
Namun, jika aplikasi yang Anda tutup gagal berhenti atau dimatikan sepenuhnya, Anda tidak akan dapat memulainya lagi. Ya, kita semua pernah menghadapi situasi seperti ini setidaknya sekali saat menjalankan sistem komputer. Untuk mengatasi masalah tersebut, Anda harus menghentikan proses aplikasi Anda yang tidak berjalan. Namun sekarang pertanyaannya adalah bagaimana? Dalam artikel ini, Anda akan memahami dua pendekatan berbeda untuk mematikan semua proses pada sistem operasi FreeBSD.
1. Apa itu perintah kill & killall
Sebelum kita menyelami contoh-contoh spesifik penggunaan perintah kill dan killal, ada baiknya kita memahami konsep dasar kedua perintah ini.Ketika aplikasi gagal dihentikan, aplikasi tersebut terus menghabiskan memori dan daya pemrosesan. Untungnya, FreeBSD menyediakan utilitas atau perintah utilitas yang membantu Anda menghentikan proses yang tidak dapat dihentikan. Baiklah, sekarang mari kita bahas dua perintah kill process Linux yang berbeda dan perintah killall, dan cara kerjanya.
kill adalah utilitas baris perintah dasar pada FreeBSD yang dapat mengirim sinyal ke proses untuk menghentikannya. Di FreeBSD, kill secara default mengirimkan sinyal TERM. Sinyal ini meminta proses untuk menghentikan dirinya sendiri dengan baik. Jika suatu proses tidak merespons sinyal TERM, proses tersebut dapat mengirimkan sinyal KILL, yang segera menghentikan proses tersebut.
killall adalah alat untuk menghentikan proses yang berjalan pada sistem FreeBSD Anda berdasarkan nama. Sementara itu, kill akan menghentikan proses berdasarkan nomor ID Proses (PID). kill dan killall juga dapat mengirim sinyal sistem tertentu ke aplikasi yang akan dihentikan.
Gunakan killall dan kill bersama dengan alat termasuk Status Proses, ps, untuk mengelola dan menghentikan proses yang macet atau tidak responsif.
2. Sinyal Sistem FreeBSD
Pada FreeBSD, sinyal awalnya dirancang untuk memodelkan kejadian luar biasa, seperti upaya pengguna untuk menghentikan program yang tidak berfungsi atau sulit dihentikan. Sinyal tidak dimaksudkan untuk digunakan sebagai mekanisme komunikasi antarproses umum, dan dengan demikian tidak ada upaya yang dilakukan untuk membuatnya andal. Pada sistem sebelumnya, setiap kali sinyal tertangkap, tindakan tersebut disetel ulang ke tindakan default. Pengenalan kontrol pekerjaan menyebabkan penggunaan sinyal menjadi jauh lebih sering dan menciptakan masalah yang lebih parah yang juga diperburuk oleh prosesor yang lebih cepat.Jika dua sinyal dikirim secara bersamaan dan dilakukan dengan cepat, sinyal kedua dapat menyebabkan proses berhenti, meskipun pengontrol sinyal telah diatur untuk menangkap sinyal pertama. Pada titik ini, keandalan menjadi diinginkan, sehingga pengembang merancang kerangka kerja baru yang berisi sebagian kemampuan lama sambil mengakomodasi mekanisme baru.
Sinyal memungkinkan manipulasi suatu proses dari luar domainnya serta memungkinkan proses untuk memanipulasi dirinya sendiri atau menyalin dirinya sendiri. Ada dua jenis sinyal umum:
- Sinyal yang menyebabkan penghentian suatu proses dan,
- Sinyal yang tidak menyebabkan penghentian proses.
Sinyal digunakan saat suatu proses dihentikan karena ingin mengakses terminal kontrolnya saat berada di latar belakang. Sinyal secara opsional dihasilkan saat suatu proses dilanjutkan setelah dihentikan, saat status proses anak berubah, atau saat input siap di terminal kontrol. Sebagian besar sinyal mengakibatkan penghentian proses penerimaannya jika tidak ada tindakan yang diambil; beberapa sinyal benar-benar menyebabkan proses penerimaan berhenti, atau dibuang begitu saja jika proses tidak meminta sebaliknya. Kecuali untuk sinyal SIGKILL dan SIGSTOP, fungsi sinyal memungkinkan sinyal untuk ditangkap, diabaikan, atau menghasilkan interupsi. Sinyal-sinyal ini didefinisikan dalam berkas "signal.h".
Num Name Default Action Description
1 SIGHUP terminate process terminal line hangup
2 SIGINT terminate process interrupt program
3 SIGQUIT create core image quit program
4 SIGILL create core image illegal instruction
5 SIGTRAP create core image trace trap
6 SIGABRT create core image abort program (formerly SIGIOT)
7 SIGEMT create core image emulate instruction executed
3. Cara Menggunakan Perintah Kill
Perintah proses Terminate merupakan utilitas penting yang harus diketahui oleh setiap administrator sistem FreeBSD. Jika Anda gagal menghentikan daemon apa pun, proses kill FreeBSD dan perintah killall FreeBSD akan membantu Anda menghentikan daemon apa pun yang sulit dimatikan.Perintah kill dapat menghentikan setiap proses individual sebagaimana ditentukan oleh PID-nya.
Perintah tersebut berbentuk sebagai berikut:
Secara umum, perintah killal dapat ditulis sebagai berikut:
Di bawah ini kami berikan contoh cara menghentikan daemon mysql-server. Seperti yang kita ketahui, pada FreeBSD secara default mysql-server memiliki nama pengguna dan grup yang disebut "mysql".
Gunakan perintah ps -auwx untuk melihat PID mysql-server yang sedang berjalan.
Kita juga dapat mematikan daemon mysql-server dengan menggabungkan "username" dan "procname".
# kill [-s signal_name] pid
# kill -l [exit_status]
# kill -signal_name pid
# kill -signal_number pid
Utilitas kill mengirimkan sinyal ke proses yang ditentukan oleh nomor pid. Membunuh proses dapat dilakukan oleh pengguna mana pun, tetapi hanya pengguna super yang dapat mengirim sinyal ke proses pengguna lain.
Pilihannya adalah sebagai berikut:
Pilihannya adalah sebagai berikut:
- s signal_name Nama sinyal simbolis yang menentukan sinyal yang akan dikirim, bukan TERM default.
- l [exit_status] Jika tidak ada operan yang diberikan, daftarkan nama sinyal; jika tidak, tulis nama sinyal yang sesuai dengan exit_status.
- signal_name Nama sinyal simbolis yang menentukan sinyal yang akan dikirim, bukan TERM default.
- signal_number Bilangan bulat desimal non-negatif, yang menentukan sinyal yang akan dikirim, bukan TERM default.
- 1 Jika superuser, siarkan sinyal ke semua proses; jika tidak, siarkan ke semua proses milik pengguna.
- HUP (hang up).
- INT (interrupt).
- QUIT (quit).
- ABRT (abort).
- KILL (non-catchable, non-ignorable kill).
- ALRM (alarm clock).
- TERM (software termination signal).
Pada perintah di atas nomor PID Redis adalah 3046, sekarang kita akan memaksa daemon Redis untuk berhenti dengan perintah kill.
Jika komputer Anda tidak merespons sinyal Redis, Anda dapat menggunakan HUP untuk menghentikan daemon Redis.
4. Cara Menggunakan Perintah Killall
Pada FreeBSD, utilitas killall digunakan untuk menghentikan proses yang dipilih berdasarkan nama, bukan pemilihan berdasarkan PID seperti yang dilakukan dengan kill. Secara default, killall akan mengirimkan sinyal TERM ke semua proses dengan UID asli yang identik dengan pemanggil killall yang cocok dengan procname. Hanya pengguna super yang diizinkan untuk menghentikan proses apa pun.Secara umum, perintah killal dapat ditulis sebagai berikut:
# killall procname
Gunakan perintah ps -auwx untuk melihat PID mysql-server yang sedang berjalan.
Pada perintah di atas, daemon mysql-server diberi nama "mysqld". Sekarang kita coba untuk mematikan daemon mysql-server dengan perintah killall.
Mari kita lihat hasilnya dengan perintah ps -auwx.
Pada perintah di atas, daemon mysql-server telah berhasil dimatikan.
Kita juga dapat mematikan daemon mysql-server dengan menggabungkan "username" dan "procname".
Pada perintah di atas "mysql" adalah nama pengguna mysql-server, dan "mysqld" adalah daemon mysql-server.
Memahami perintah kill dan killall akan sangat membantu seorang administrator sistem dalam menjalankan pekerjaannya. Anda harus menguasai kedua perintah ini, jika ingin mempelajari FreeBSD.
Silahkan Berkomentar, Kakak...! Bunda...!
Posting Komentar