Menggunakan Perintah killall dan kill Di FreeBSD

· 2 min read

Pada FreeBSD, sinyal awalnya dirancang untuk memodelkan kejadian luar biasa, seperti upaya pengguna untuk menghentikan program yang tidak berfungsi at

Anda 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.


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 yang menyebabkan program berhenti mungkin disebabkan oleh kesalahan yang tidak dapat diperbaiki atau mungkin disebabkan oleh pengguna terminal yang mengetik karakter `interupsi'.

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:

# 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:
  • 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.
PID berikut memiliki arti khusus:
  • 1 Jika superuser, siarkan sinyal ke semua proses; jika tidak, siarkan ke semua proses milik pengguna.
Beberapa sinyal yang paling umum digunakan:
  • HUP (hang up).
  • INT (interrupt).
  • QUIT (quit).
  • ABRT (abort).
  • KILL (non-catchable, non-ignorable kill).
  • ALRM (alarm clock).
  • TERM (software termination signal).
Di bawah ini kami berikan contoh cara menggunakan perintah kill. Dalam contoh ini kami akan mencoba menghentikan daemon aplikasi Redis.
root@ns7:~ # ps -auwx | grep redis
redis 3046   0.0  0.5   34604   9620  -  Ss   07:33     0:00.01 redis-server: /usr/local/bin/redis-server 127.0.0.1:6379 (redis-server)
root  3048   0.0  0.1   12812   2368  0  S+   07:33     0:00.00 grep redis
Pada perintah di atas nomor PID Redis adalah 3046, sekarang kita akan memaksa daemon Redis untuk berhenti dengan perintah kill.
root@ns7:~ # kill -QUIT 3046
or
root@ns7:~ # kill -s QUIT 3046
Jika komputer Anda tidak merespons sinyal Redis, Anda dapat menggunakan HUP untuk menghentikan daemon Redis.
root@ns7:~ # kill -HUP 3046
or
root@ns7:~ # kill -s HUP 3046

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

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.
root@ns7:~ # ps -auwx | grep mysql
mysql 6940  78.2 31.5 2304128 563976  -  S    08:16     0:02.67 /usr/local/libexec/mysqld --defaults-extra-file=/usr/local/etc/mysql/my.cnf --basedir=/usr/local --datadir=/var/
mysql 5785   0.0  0.2   13580   3164  -  Ss   08:16     0:00.05 /bin/sh /usr/local/bin/mysqld_safe --defaults-extra-file=/usr/local/etc/mysql/my.cnf --basedir=/usr/local --data
root  6947   0.0  0.1   12812   2356  0  S+   08:16     0:00.00 grep mysql
Pada perintah di atas, daemon mysql-server diberi nama "mysqld". Sekarang kita coba untuk mematikan daemon mysql-server dengan perintah killall.
root@ns7:~ # killall mysqld
Mari kita lihat hasilnya dengan perintah ps -auwx.
root@ns7:~ # ps -auwx | grep mysql
root  6970   0.0  0.1 12812 2364  0  S+   08:20     0:00.00 grep mysql
Pada perintah di atas, daemon mysql-server telah berhasil dimatikan.


Kita juga dapat mematikan daemon mysql-server dengan menggabungkan "username" dan "procname".
root@ns7:~ # killall -u mysql mysqld
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.
Subscribe on LinkedIn Menggunakan Perintah killall dan kill Di FreeBSD

Enclosures Link: Menggunakan Perintah killall dan kill Di FreeBSD

Silahkan Berkomentar, Kakak...! Bunda...!

Posting Komentar