Port already in use, what to do?

이 주제가 도움이 되어서, 3년 전 글이긴 하지만 몇 가지 추가할게요. 오늘 포트 사용 중 오류를 겪었는데, 무슨 일이 있었는지 좀 당황스럽네요. 혹시 다른 분들도 같은 문제를 겪을 수 있으니까 순서대로 정리해서 올려봅니다.

배경: Ubuntu 16.04.3 LTS를 사용 중입니다(18.04로 업그레이드할까 봐 너무 두렵네요). 그리고 Discourse 2.3.x를 쓰고 있는데, 정확히 어떤 버전인지는 잘 모르겠어요(이유는 나중에 :)).

app.yml에 변경 사항(관련 없는 내용)을 넣고 앱을 다시 빌드했습니다.

그리고 Ubuntu가 재부팅을 원한다는 알림이 떴는데(이유는 확인 안 함), Ubuntu도 재부팅했습니다.

그 결과 포트 오류 문제가 발생했죠.

Apache2가 갑자기 실행 중이라는 걸 알아차렸고, 이를 비활성화했습니다:
root@Discourse:~# sudo update-rc.d apache2 disable
insserv: warning: current start runlevel(s) (empty) of script apache2' overrides LSB defaults (2 3 4 5). insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script apache2’ overrides LSB defaults (0 1 6).

결국 포트가 비어 있었기 때문에 포럼을 다시 띄울 수 있었습니다.

하지만 이게 왜 일어났는지는 도저히 모르겠네요. Apache2는 어디서 온 건가요?

재부팅 직후 바로 포럼을 테스트해 봤어야 했는데, 실수였네요. 이제 이게 Discourse 업그레이드 때문인지 Ubuntu 재부팅 때문인지 알 수 없어요(로그에서 찾을 수 있겠지만, 요즘은 Linux에 익숙하지 않아서요). Discourse 2.5가 요즘 Apache2를 설치하는지 포럼에서 찾아보기도 했습니다.

다행인 점은, Discourse 업그레이드가 원래 오래전부터 필요했던 거라는 겁니다. 지난 5년간 거의 두 번에 한 번씩 이런 문제를 겪어서 요즘은 업그레이드를 정말 꺼리게 됩니다. 그래도 Discourse는 여전히 좋아합니다…