Port already in use, what to do?

بما أن هذا الموضوع كان مفيدًا، سأضيف إليه حتى لو كان عمره 3 سنوات. واجهت اليوم مشكلة «المنفذ قيد الاستخدام» وأحس بالارتباك بعض الشيء تجاه ما حدث. سأعرض فقط تسلسل الأحداث في حال واجهها شخص آخر.

الخلفية: أعمل على Ubuntu 16.04.3 LTS (أخشى جدًا الترقية إلى 18.04) ونسخة Discourse 2.3.x (لا أتذكر الإصدار الدقيق، وسأوضح السبب لاحقًا).

أجريت تغييرًا (غير ذي صلة) على ملف app.yml وأعدت بناء التطبيق.

لاحظت أيضًا أن 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 كانت مطلوبة منذ فترة طويلة. أنا فقط متردد جدًا في الترقية هذه الأيام لأنني واجهت مشاكل مثل هذه كل مرة ثانية تقريبًا خلال الخمس سنوات الماضية. ومع ذلك، ما زلت أحب Discourse…