Những điều đã nói ở trên killall -9 node
, được đề xuất bởi Patrick hoạt động như mong đợi và giải quyết vấn đề nhưng bạn có thể muốn đọc phần chỉnh sửa của câu trả lời này về lý do tại saokill -9
có thể không phải là cách tốt nhất để làm điều đó.
Trên hết, bạn có thể muốn nhắm mục tiêu vào một quá trình duy nhất thay vì giết chết tất cả quy trình đang hoạt động.
Trong trường hợp đó, trước tiên hãy lấy ID tiến trình (PID) của quy trình đang chạy trên cổng đó (giả sử 8888):
lsof -i tcp:8888
Điều này sẽ trả về một cái gì đó như:
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
node 57385 You 11u IPv6 0xac745b2749fd2be3 0t0 TCP *:ddi-tcp-1 (LISTEN)
Sau đó, chỉ cần làm (ps - thực sự không . Vui lòng đọc bên dưới):
kill -9 57385
Bạn có thể đọc thêm một chút về điều này ở đây .
EDIT: Tôi đã đọc về một chủ đề khá liên quan ngày hôm nay và tình cờ thấy chủ đề thú vị này về lý do tại sao tôi không nên kill -9
là một quá trình .
Nói chung, bạn nên sử dụng kill -15 trước khi kill -9 để tạo cơ hội cho mục tiêu dọn dẹp sau đó. (Các quy trình không thể bắt hoặc bỏ qua SIGKILL, nhưng chúng có thể và thường bắt SIGTERM.) Nếu bạn không cho quá trình hoàn thành những gì nó đang làm và dọn sạch, nó có thể để lại các tệp bị hỏng (hoặc trạng thái khác) rằng nó sẽ không thể hiểu được khi khởi động lại.
Vì vậy, như đã nêu, bạn nên giết quá trình trên với:
kill -15 57385
EDIT 2 : Như đã lưu ý trong một nhận xét quanh đây nhiều lần lỗi này là hậu quả của việc không thoát ra một quy trình một cách duyên dáng. Điều đó có nghĩa, rất nhiều người dân thoát khỏi một lệnh nút (hoặc bất kỳ khác) sử dụng tổ hợp phím CTRL + Z . Cách chính xác để dừng quá trình đang chạy là phát lệnh CTRL + C để thực hiện thoát sạch.
Thoát khỏi một quy trình đúng cách sẽ giải phóng cổng đó trong khi tắt. Điều này sẽ cho phép bạn khởi động lại quá trình mà không gặp phải rắc rối khi tự giết nó trước khi có thể chạy lại nó.