توی یکی از پروژهها بعد از اینکه تنظیمات کارت شبکه یه سرور AlmaLinux رو انجام دادم خطای dhclient is already running – exiting رو دریافت کردم. اگه شما هم با چنین مشکلی روبرو شدید، تا انتهای مقاله با من همراه باشید.
در مقاله مشکل کارت شبکه سرور ابر آروان پس از تغییر آی پی درباره نحوه تنظیم روتینگ در سیستمعامل Ubuntu و AlmaLinux آموزشی رو نوشتم. در انتهای اون آموزش وقتی میخواستم با دستور sudo systemctl restart network
سرویس شبکه رو در سیستم عامل AlmaLinux مجددا راهاندازی کنم با خطای زیر برخورد کردم:
Job for network.service failed because the control process exited with error code.
See "systemctl status network.service" and "journalctl -xe" for details.
برای اینکه بهتر متوجه بشم علت خطا چیه و چرا سرویس network در سرور دوباره راهاندازی نمیشه دستور زیر رو در ترمینال وارد کردم:
journalctl -xe
بعد از بررسی خروجی دستور بالا به خطای dhclient is already running – exiting رسیدم. این خطا زمانی رخ میده که یک فرآیند dhclient قبلاً در حال اجراست و سیستم تلاش میکنه یک فرآیند جدید dhclient را برای همون اینترفیس شبکه راهاندازی کنه. این مسئله معمولاً زمانی رخ میده که شما سعی دارید دوباره DHCP رو فعال کنید یا به صورت دستی فرآیند dhclient رو اجرا کنید، در حالی که فرآیند قبلی هنوز فعاله.
در پیام خطایی که من دریافت کردم داخل پرانتز PID فرایند dhclient رو نوشته بود. در واقع پیام خطا به شکل زیر بود:
dhclient(773487) is already running - exiting
پیدا کردن علت خطای dhclient is already running
اگه در پیام خطایی که شما دریافت میکنید PID فرایند dhclient وجود نداشت، بهراحتی میتونید با دستور زیر PID رو دریافت کنید:
ps aux | grep dhclient
بعد از اینکه PID رو استخراج کردید کافیه به کمک دستور kill -9
اون فرایند رو متوقف کنید. در دستور زیر به جای <PID>
شماره فرایندی که از دستور قبلی استخراج کردید رو بنویسید:
kill -9 <PID>
پس از حذف فرآیند یا فایلهای PID، میتونید شبکه رو مجددا راهاندازی کنید:
sudo systemctl restart network
با انجام این مراحل، خطای dhclient برطرف میشه و میتونید فرآیند dhclient رو دوباره اجرا کنید تا کارت شبکه شما به درستی از DHCP آدرس IP رو دریافت کنه.