Saya menggunakan kucing jantan, dan kadang-kadang ketika saya katakan untuk menghentikannya tidak benar-benar mematikan prosesnya.
Cara saya mengatasi ini juga:
lsof -i tcp:8080
yang keluaran:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 888 root 35u IPv6 780659 0t0 TCP *:http-alt (LISTEN)
java 888 root 39r IPv6 790103 0t0 TCP localhost:58916->localhost:http-alt (CLOSE_WAIT)
java 888 root 40r IPv6 792585 0t0 TCP localhost:58936->localhost:http-alt (CLOSE_WAIT)
java 888 root 75r IPv6 785553 0t0 TCP localhost:58701->localhost:http-alt (CLOSE_WAIT)
java 888 root 77r IPv6 787642 0t0 TCP localhost:58814->localhost:http-alt (CLOSE_WAIT)
java 888 root 130u IPv6 783894 0t0 TCP localhost:58686->localhost:http-alt (CLOSE_WAIT)
java 888 root 353u IPv6 780929 0t0 TCP localhost:58632->localhost:http-alt (CLOSE_WAIT)
Saya kemudian lari
kill -9 pid
Saya ingin cara untuk mendapatkan semua nomor pid dan membunuhnya. Masalahnya saya tidak tahu bagaimana mengisolasi bidang itu.
tomcat
proses yang terbuka, Anda dapat menggunakankillall -9 tomcat
Jawaban:
Ada
-t
opsi (singkat) dilsof
, yang tampaknya melakukan persis apa yang Anda cari yaituLihat
man lsof
Dengan asumsi Anda memiliki izin yang diperlukan, Anda dapat meneruskan hasilnya
kill
sebagai daftar PID dengan substitusi perintah:sumber
Jangan lupa
--no-run-if-empty
opsi untuk membunuh :)Dengan begitu kill hanya akan dijalankan ada proses mendengarkan, tidak perlu melakukan pengecekan sendiri.
sumber
lsof -i tcp:8080
menghasilkan output, lalu| egrep -v "COMMAND PID USER"
turunkan baris header, lalu| awk '{print $2}'
cetak bidang ke-2,| sort -n
siapkan angka-angkanya| uniq
, yang hanya menampilkan setiap PID unik satu kali. Menyatukan semuanya memberi:Tapi,
pkill -KILL tomcat
ataukillall -KILL tomcat
lebih mudah.sumber
Liner satu dari @waltinator bagus.
Saya akan menambahkan lebih banyak rasa ke dalamnya:
ATAU
sumber
Ini adalah skrip yang saya buat dengan sedikit pengecekan error.
sumber
Berikut adalah fungsi cangkang ikan sederhana
hanya menempel pengisap ini dalam file di lokasi ini
~/.config/fish/functions/kill-port.fish
dan Anda baik untuk pergi. Anda bisa menyebutnya sepertikill-port 8000
sumber