Khóa học thực chiến

Lỗi port in use trong nodejs express



  • Mình cấu hình 1 web viết bằng express framework chạy trên port X, trên máy window (window server) cài nodejs, có cài thêm pm2 để tiện quản lý (server có nhiều web app nodejs chạy trên các port khác nhau), start xong thì các web chạy bình thường; đến một ngày đẹp trời thì thằng trên port X nó die mất, start app lại bằng pm2, hoặc npm start bình thường đều error ".. port X in use" (cấu hình nó qua port khác thì start bình thường!)

    Mình check tiếp port này (dùng netstat, TCPView ) thì không phát hiện đứa nào đang xài nó cả.

    Sau cuối restart luôn server thì app trên port X này chạy lại bình thường như chưa có gì xảy ra (?)

    Vậy có bạn nào gặp trường hợp này chưa và nguyên nhân, cách giải quyết thế nào nhỉ?
    Thank all


  • Global Moderator

    @phatht Trong lúc lỗi thì bạn có vào được dịch vụ theo port đó ko? Có thể app của bạn vẫn chạy, nhưng pm2 mất trạng thái quản lý của ứng dụng.



  • Nói die tức là không vào được luôn đó bạn, vì nó là web thôi nên truy cập không được là biết rồi.



  • @phatht Như gởi ý của bạn @Vũ là đúng rồi đó. Lỗi này thông thường là do một process nào đó đã chiếm port. Trên máy window hay bị lỗi này, bạn cần phải check kỹ xem process nào đang chiếm port đó. Máy window của đồng nghiệp mình cũng hay bị trường hợp này.


  • Global Moderator

    @Quy-Tran @phatht Trên Windows bạn có thể tìm ứng dụng nào chiếm port X bằng lện này, ví dụ: X = 80

    netstat -abno -p tcp | find "80"

    Chú ý lệnh này phải chạy CMD với quyền Administrator.
    Tham khảo:
    http://how.vndemy.com/software/104-huong-dan-kiem-tra-ung-dung-su-dung-cong-80-tren-windows/


Log in to reply