Untuk membunuh proses Linux, Anda membutuhkan ID atau namanya. Jika semua yang Anda tahu adalah port yang digunakannya, apakah Anda masih bisa membunuhnya? Ya, dalam beberapa cara berbeda.
Proses membunuh
Kadang -kadang a Proses Linux bisa menjadi tidak responsif. Itu mungkin berhenti beroperasi dengan benar, atau mungkin terus bekerja tetapi mengabaikan permintaan untuk dimatikan, atau memulai memori yang melahap, CPU , atau bandwidth jaringan.
Apa pun motif Anda, ada cara untuk membunuh suatu proses dari baris perintah Linux. Metode klasik adalah menggunakan
Bunuh Perintah dengan ID Proses
dari proses yang ingin Anda hentikan. Itu
membunuh
Perintah memiliki beberapa kerabat dekat. Itu
pkill
perintah akan membunuh proses dengan nama, dan
Bunuh semua
akan membunuh semua proses yang dapat menemukan bahwa berbagi sebagian nama.
Jika semua yang Anda ketahui tentang suatu proses adalah menggunakan port di komputer Anda, masih ada cara untuk mengidentifikasi dan membunuhnya. Dalam istilah jaringan, "port" dapat berarti koneksi fisik di mana Anda memasukkan kabel dengan steker di ujungnya, seperti a Pimpinan jaringan Cat5 atau 6 , atau itu bisa berarti port perangkat lunak.
Port perangkat lunak adalah bagian akhir dari koneksi jaringan. Itu alamat IP perangkat mengidentifikasi komputer atau alat jaringan lainnya. Aplikasi di dalam komputer menggunakan port yang berbeda. Ini memberikan tingkat granularitas lain. Lalu lintas jaringan telah tiba di komputer yang benar menggunakan alamat IP, dan dengan menggunakan port yang membahasnya dapat dikirimkan ke aplikasi yang benar.
Ini seperti surat pos yang tiba di sebuah hotel, kemudian diurutkan dan dikirim ke kamar yang sesuai. Alamat IP seperti alamat jalan hotel, dan nomor kamarnya seperti nomor port.
Jika Anda melihat aktivitas jaringan di port dan Anda tidak mengenali proses yang menghasilkannya, atau perilakunya bermasalah atau mencurigakan, Anda mungkin ingin membunuh prosesnya. Bahkan jika yang Anda tahu adalah nomor port, Anda dapat melacak prosesnya dan membunuhnya.
Membuat koneksi dengan socat
Sehingga kami memiliki beberapa koneksi untuk dibunuh, kami akan menggunakan
socat
Untuk membuat koneksi jaringan menggunakan protokol yang berbeda. Anda harus menginstal
socat
. Untuk menginstalnya di Ubuntu, gunakan perintah ini:
Sintaks untuk
socat
sangat mudah jika sedikit bertele-tele. Kita perlu memberikan alamat sumber dan tujuan. Untuk masing -masing, kita perlu memberikan protokol, alamat IP, dan nomor port. Kita dapat mengganti stdin atau stdout sebagai sumber atau tujuan.
Perintah ini membuat koneksi antara soket mendengarkan TCP di port 7889, pada alamat IP loopback 127.0.0.1, dan stdout. Ampersand “
& amp;
"
menjalankan perintah di latar belakang
, sehingga kami mempertahankan akses ke baris perintah.
Kami akan membuat dua koneksi lagi sehingga kami memiliki sedikit pilihan soket menggunakan protokol yang berbeda. Kami akan membuat Koneksi UDP dan an Koneksi SCTP . Satu -satunya bagian dari perintah yang berubah adalah protokol.
Menggunakan Kill
Tentu saja, kita bisa menggunakan
membunuh
Untuk mengakhiri proses, selama kita tahu apa ID prosesnya. Untuk menemukan PID, kami dapat menggunakan
itu
lsof
memerintah
.
Untuk mencantumkan rincian proses pada port 7889 yang menggunakan protokol TCP, kami menggunakan
-Saya
Opsi (Alamat Internet), seperti ini.
PID dari proses ini adalah 3141, dan kami dapat melanjutkan dan menggunakannya dengan
membunuh
:
Kita bisa menyelamatkan diri kita sendiri jika kita menggunakan pipa. Jika kita menyalurkan output
lsof
ke dalam
AWK
Dan
memberi tahu
AWK
Untuk mencari garis yang berisi port yang kami minati - 7889 - dan cetak bidang kedua dari garis itu, kami akan mengisolasi PID.
Kami kemudian dapat menyalurkan output
AWK
ke dalam
membunuh
perintah menggunakan
xargs
. Itu
xargs
Perintah mengambil inputnya yang disalurkan dan meneruskannya ke perintah lain
sebagai parameter baris perintah
. Kami akan menggunakannya
xargs
dengan
membunuh
memerintah.
Kami tidak mendapatkan umpan balik visual. Dengan cara Linux yang khas, tidak ada berita adalah kabar baik. Jika Anda ingin memeriksa bahwa proses telah diakhiri, Anda dapat menggunakannya
lsof
sekali lagi.
Karena
lsof
Tidak melaporkan apa pun, kami tahu tidak ada koneksi seperti itu.
Kami dapat menghapus proses menggunakan protokol UDP hanya dengan mengganti "TCP" dengan "UDP" di perintah kami sebelumnya.
Kita bisa gunakan
itu
SS
memerintah
untuk melakukannya. Kami menggunakan
-S
Opsi (sctp) untuk mencari soket sctp,
-A
(semua) opsi untuk mencari semua jenis soket (mendengarkan, menerima, terhubung, dll.), Dan
-P
Opsi (Proses) Untuk mencantumkan rincian proses menggunakan soket.
Kita dapat menguraikan output itu menggunakan
grep
Dan
AWK
. Kami juga bisa menguraikannya menggunakannya
grep
Dan beberapa perlegeks Perl, tetapi dengan cara ini jauh lebih mudah untuk dipahami. Jika Anda akan menggunakan ini lebih dari sekali atau dua kali Anda mungkin membuat
alias atau fungsi shell
keluar dari itu.
Kami akan menyalurkan output
SS
ke dalam
grep
dan mencari nomor port kami, 7889. Kami akan menyalurkan output
grep
ke dalam
AWK
. Di dalam
AWK
, kami menggunakan
-F
Opsi (pemisah string) untuk mengatur koma "
,
”Sebagai Pembatas Bidang. Kami mencari string
mengandung
"PID =", dan cetak bidang yang dibatasi koma kedua dari string itu.
Kita dapat
pipa
itu menjadi
AWK
Sekali lagi, atur pembatas bidang ke tanda yang sama "
=
”Dan cetak bidang kedua dari
itu
string, yang akan menjadi teks di balik tanda Equals.
Kami sekarang telah mengisolasi ID proses. Kita bisa gunakan
xargs
untuk meneruskan pid
membunuh
sebagai parameter baris perintah.
Itu membunuh proses yang menggunakan soket protokol SCTP pada port 7889.
Perintah Fuser
Itu
fuser
Perintah menyederhanakan banyak hal. Kelemahannya adalah, hanya bekerja dengannya
TCP dan UDP
soket. Di sisi positifnya, itu adalah dua jenis soket paling umum yang perlu Anda tangani. Itu
fuser
Perintah sudah diinstal pada komputer Ubuntu, Fedora, dan Manjaro yang kami periksa.
Yang perlu Anda lakukan adalah menggunakan
-k
Opsi (Bunuh), dan berikan port dan protokol. Anda dapat menggunakan
-N
Opsi (namespace) dan berikan protokol dan port, atau gunakan "format pintasan slash maju" dan letakkan nomor port terlebih dahulu.
Nomor port, protokol, dan PID dari proses yang diakhiri dicetak di jendela terminal.
Coba Fuser dulu
Ini mungkin akan diinstal di komputer yang sedang Anda kerjakan, dan protokolnya cenderung TCP atau UDP, jadi ada kemungkinan besar cara paling sederhana akan bekerja untuk Anda.
- › OnePlus 11 ada di sini, tetapi dengan awal yang kasar
- › Cara memblokir atau membuka blokir seseorang di tiktok
- › Airpods Pro memiliki kompetisi baru: The OnePlus Buds Pro 2
- › Microsoft Edge mendapatkan obrolan AI dan tampilan baru di Windows
- › Earbud terbaik untuk penggemar iPhone baru saja mencapai harga terendah
- › Microsoft mengubah Bing menjadi mesin pencari AI