ผู้ใช้ Mac อาจพบสถานการณ์ที่กระบวนการล็อกพอร์ตในบางครั้ง ทำให้แอปหรือกระบวนการอื่นใช้พอร์ตนั้นไม่ได้ หากคุณเจอสถานการณ์ดังกล่าว เช่น คุณอาจกำลังพยายามใช้ React.js และพบว่ามีบางอย่างกำลังทำงานบนพอร์ต 3000 อยู่แล้ว คุณสามารถติดตามได้อย่างง่ายดายว่ากระบวนการใดกำลังใช้พอร์ตบน Mac โดย หันไปใช้บรรทัดคำสั่ง
เราจะแสดงวิธีค้นหาและฆ่ากระบวนการที่ล็อกพอร์ตบน MacOS
วิธีค้นหาว่ากระบวนการใดล็อกพอร์ตบน Mac
ไวยากรณ์ที่จะใช้จะเป็นดังต่อไปนี้ โดยแทนที่ PORTNUMBER ด้วยหมายเลขพอร์ตที่คุณต้องการค้นหากระบวนการโดยใช้:
sudo lsof-i:PORTNUMBER
ตัวอย่างเช่น เพื่อค้นหากระบวนการโดยใช้พอร์ต 445:
sudo lsof-i:445
หรือค้นหากระบวนการโดยใช้และล็อคพอร์ต 3000:
sudo lsof-i:3000
วิธีค้นหาและฆ่ากระบวนการที่ล็อกพอร์ตบน Mac
เมื่อคุณมี PID (รหัสกระบวนการ) จากเอาต์พุตคำสั่งของ lsof แล้ว คุณสามารถออกจากแอป ปิดบริการ หรือยุติกระบวนการนั้น เพื่อปลดปล่อยและทำให้พอร์ตที่ถูกล็อคว่าง
วิธีที่ง่ายที่สุดในการฆ่ากระบวนการคือการใช้คำสั่ง kill:
kill-9 PID
ตัวอย่างเช่น หาก ID กระบวนการที่ใช้พอร์ต 3000 คือ “8384” คุณควรใช้ไวยากรณ์คำสั่งต่อไปนี้:
kill-9 8384
หากกระบวนการนี้ เจ้าของรูท ผู้ดูแลระบบ หรือผู้ใช้รายอื่น คุณต้องนำหน้าคำสั่งด้วย sudo:
sudo kill-9 8384
สำหรับสิ่งที่คุ้มค่า คำสั่ง lsof ที่ใช้ที่นี่ มุ่งเน้นไปที่ Mac แต่จะใช้งานได้เหมือนกันใน linux เช่นกัน
เราถือว่าคุณมีความรู้บางอย่างเกี่ยวกับบรรทัดคำสั่ง แต่แน่นอนว่าถ้าคุณไม่มี คุณก็คงไม่มาที่นี่ตั้งแต่แรก หรือกังวลเกี่ยวกับสิ่งที่กำลังใช้หรือล็อคพอร์ต.
มีวิธีอื่นในการทำเช่นนี้ แต่เห็นได้ชัดว่าเรากำลังใช้คำสั่ง lsof ซึ่งมีประสิทธิภาพมาก และยังสามารถใช้เพื่อค้นหาสิ่งที่กำลังฟังอยู่บนพอร์ต TCP เพื่อค้นหาว่าแอปใดบ้าง หรือกระบวนการกำลังโต้ตอบกับไฟล์เฉพาะ เพื่อค้นหากระบวนการทั้งหมดโดยใช้การเชื่อมต่ออินเทอร์เน็ต และอื่นๆ
คุณมีวิธีอื่นในการพิจารณาว่ากระบวนการใดกำลังล็อกหรือใช้พอร์ตใดพอร์ตหนึ่งหรือไม่ แบ่งปันแนวทางของคุณกับเราในความคิดเห็นด้านล่าง