วิธีการฆ่ากระบวนการโดยพอร์ตบน MacOS, a la fuser -k 9000 / tcp


13

บน linux ฉันสามารถฆ่ากระบวนการที่รู้เพียงพอร์ตที่กำลังฟังอยู่โดยใช้fuser -k 9000/tcpฉันจะทำเช่นนั้นบน MacOS ได้อย่างไร

คำตอบ:


17
lsof -P | grep ':PortNumber' | awk '{print $2}' | xargs kill -9

เปลี่ยนPortNumberเป็นพอร์ตจริงที่คุณต้องการค้นหา


2
ฉันเพิ่งมีการเพิ่ม-9ไปยังจุดสิ้นสุดจะได้รับนี้ในการทำงาน แต่ผมเชื่อว่าเป็นเพราะธรรมชาติของการประยุกต์ใช้การฟังและไม่แนะนำโดยทั่วไปการปฏิบัติเพื่อkill -9ที่อยู่
กริช

@Kris - lsof -P | grep ': NumberOfPort' | awk '{พิมพ์ $ 2}' | xargs kill -9 ทำงานแล้ว!
เอซ

7

การเพิ่มแฟล็ก -t และ -i ไปยัง lsof ควรเร่งความเร็วให้ดียิ่งขึ้นโดยไม่จำเป็นต้องใช้ grep และ awk

lsof -nti:NumberOfPort | xargs kill -9

1
ใช้งานได้และกระชับกว่าคำตอบที่ยอมรับ!
Big Rich

2

เพิ่ม -n ไปยัง lsof และคุณลบการค้นหา DNS ย้อนกลับจากคำสั่งและลดเวลาทำงานจากนาทีเป็นวินาที

lsof -Pn | grep ':NumberOfPort' | awk '{print $2}' | xargs kill -9

0

คุณสามารถใช้kill -9 $(lsof -i:PORT -t) 2> /dev/nullโดยที่ PORT คือหมายเลขพอร์ตจริงของคุณ มันจะฆ่ากระบวนการที่ทำงานอยู่บนพอร์ตที่คุณกำหนด


คุณกำลังทำซ้ำคำตอบอื่น ๆ
yass

0
  1. ตรวจสอบว่าพอร์ตของคุณเปิดอยู่หรือไม่

sudo lsof -i: {PORT_NUMBER}

COMMAND PID     USER   FD   TYPE             DEVICE SIZE/OFF NODE NAME
java    582 Thirumal  300u  IPv6 0xf91b63da8f10f8b7      0t0  TCP *:distinct (LISTEN)

2. ปิดพอร์ตโดยขั้นตอนการฆ่า PID

sudo kill -9 582

0

คุณสามารถดูว่าพอร์ตถ้าเปิดโดยคำสั่งนี้

 sudo lsof -i :8000

โดยที่ 8000 คือหมายเลขพอร์ต

หากพอร์ตเปิดอยู่ก็ควรส่งคืนสตริงที่มี ID กระบวนการ (PID)

คัดลอก PID นี้และ

kill -9 PID

หากคุณต้องการเห็นพอร์ตที่เปิดอยู่ทั้งหมดคุณสามารถทำการสแกนพอร์ตได้ในแอปพลิเคชัน Network Utility

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.