Dado que este tema fue útil, lo ampliaré aunque tenga tres años. Hoy me encontré con el problema del puerto en uso y me desconcertó lo sucedido. Solo muestro el orden de los eventos por si alguien más se topa con esto.
Antecedentes: Ejecuto Ubuntu 16.04.3 LTS (demasiado asustado para actualizar a 18.04) y Discourse 2.3.x (no sé exactamente cuál, la razón de eso luego :)).
Hice un cambio (irrelevante) en app.yml y reconstruí la aplicación.
También noté que Ubuntu quería reiniciarse (no verifiqué la razón), así que también reinicié Ubuntu.
Y terminé con el problema de error de puerto.
Descubrí que Apache2 estaba de repente en ejecución, así que lo desactivé:
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).
Y finalmente recuperé el foro, ya que el puerto quedó libre.
Lo que no logro entender es por qué ocurrió esto. ¿De dónde salió Apache2?
Debería haber probado el foro inmediatamente después del reinicio, maldita sea. Ahora no sé si la actualización de Discourse o el reinicio de Ubuntu fueron los responsables (probablemente pueda encontrarlo en algún registro, pero ya no soy muy bueno con Linux). Incluso intenté buscar en el foro si Discourse 2.5 instala Apache2 en estos días.
Lo bueno es que actualizar Discourse estaba muy atrasado. Simplemente soy muy reacio a actualizar en la actualidad, ya que en los últimos cinco años he tenido problemas como este casi cada dos veces. Aún así, sigo amando Discourse…