Port already in use, what to do?

Так как эта тема оказалась полезной, я добавлю к ней, даже если она уже трёхлетней давности. Сегодня я столкнулся с проблемой «порт занят» и немного озадачен тем, что произошло. Просто изложу хронологию событий, на случай если кто-то ещё с этим столкнётся.

Контекст: Установлена 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…