글

수동 기동과 유닛의 포트 충돌

수동으로 기동한 프로세스가 포트를 점유하고 있으면 해당 유닛은 재시작만 반복한다.

작성일 · 읽는 시간 1분

증상

유닛이 수 초 간격으로 종료와 재시작을 반복하고, 로그에는 주소가 이미 사용 중이라는 오류만 기록된다.

textjournalctl -u blog.service
ERROR: [Errno 98] error while attempting to bind on address ('127.0.0.1', 5011): address already in use

원인 확인

같은 포트를 점유한 프로세스를 확인한다.

bash
sudo ss -ltnp | grep ':5011'

유닛이 아닌 다른 프로세스가 출력되면, 시험을 위해 수동으로 기동한 프로세스가 남아 있는 경우가 대부분이다.

수동 기동 프로세스의 포트 점유와 유닛의 재시작 반복

조치

수동으로 기동한 프로세스를 종료하고 유닛을 재시작한다.

bash
kill <pid>
sudo systemctl restart blog.service

재발을 방지하려면 시험할 때에도 systemctl로만 기동하고 중지한다. 수동 기동이 불가피한 경우에는 다른 포트를 사용한다.