lsof -i :port 에 없는데도 EADDRINUSE 가 뜨는 경우

임혁진·2023년 12월 21일
0

로빌

목록 보기
8/15

문제

git에 내용을 업데이트하고 aws 서버에 직접 접근해서 git pull과 restart 를 했더니 pm2 에서 재시작을 반복하더니 error와 함께 정지했다.
그래서 pm2 log를 확인했더니 EADDRINUSE로 같은 포트 겹쳐서 그런 줄 알았는데 lsof -i :port를 했는데도 아무런 프로세스가 없었다. 분명 요청은 어디선가 들어가고 성공하고 있는데 lsof 포트에는 없는 상황.

해결

ubuntu에서 권한의 문제다. 일반적으로 서비스를 설치할 때 대부분 sudo 권한으로 모두 설치를 하고 실행을 시켜놨는데 나중에 업데이트 하러 들어갔을 때는 sudo 권한이 풀려있는 상태라 sudo 권한에서 pm2 는 실제로 돌아가고 있고 sudo 권한이 없어서 lsof -i:port를 해도 보이지 않는 것이다. 에러가 뜨는 pm2를 종료시키고 sudo pm2 status를 하면 이미 잘돌아가고잇는 서버가 보인다. sudo권한과 함께 해당 서비스를 재시작 하자.

아무래도 서비스 초기에 자동화보다는 직접 조작하고 테스트하는 경우가 많은데 이 경우 lsof -i:port를 해도 보이지 않아서 굉장히 당황했다. 빨리 자동화 이벤트를 만들어서 이런 문제가 발생하지 않도록 해야겠다.

profile
TIL과 알고리즘

0개의 댓글