راهنمای مدیریت سرویس‌ها در لینوکس (start, stop, restart, status)



یکی از بنیادی‌ترین مهارت‌ها در مدیریت سرور لینوکس، توانایی کنترل سرویس‌های در حال اجراست. سرویس‌ها برنامه‌هایی هستند که در پس‌زمینه سیستم‌عامل اجرا می‌شوند تا قابلیت‌های مختلفی را ارائه دهند؛ از وب‌سرور (مانند آپاچی) و دیتابیس (مانند MySQL) گرفته تا فایروال و سرویس SSH.

در گذشته، برای این کار از دستوراتی مانند `service` یا اسکریپت‌های موجود در `/etc/init.d/` استفاده می‌شد. اما امروزه، در تمام توزیع‌های مدرن لینوکس (اوبونتو، دبیان، CentOS، AlmaLinux، راکی لینوکس و فدورا)، ابزار استاندارد برای این کار `systemctl` است. این راهنما به عنوان یک مرجع کامل، شما را با تمام دستورات ضروری برای مدیریت سرویس‌ها در سرور مجازی لینوکس خود آشنا می‌کند.

 

معرفی `systemctl`: ابزار استاندارد مدیریت سرویس‌ها

 

`systemctl` ابزار خط فرمان اصلی برای کنترل `systemd` است که سیستم مدیریت سرویس در نسخه‌های جدید لینوکس محسوب می‌شود. یادگیری این دستور به شما اجازه می‌دهد تا هر سرویسی را به صورت یکپارچه و استاندارد مدیریت کنید.

 

دستورات اصلی `systemctl`

 

ساختار کلی این دستورات بسیار ساده است: `sudo systemctl [COMMAND] [SERVICE_NAME]`

۱. بررسی وضعیت یک سرویس: `status`

 

قبل از هر کاری، بهتر است وضعیت فعلی یک سرویس را بررسی کنید. این دستور به شما نشان می‌دهد که آیا سرویس فعال (active)، غیرفعال (inactive) یا با خطا (failed) مواجه شده است.

sudo systemctl status apache2

۲. راه‌اندازی یک سرویس: `start`

 

برای شروع به کار یک سرویس متوقف شده استفاده می‌شود.

sudo systemctl start nginx

۳. متوقف کردن یک سرویس: `stop`

 

برای متوقف کردن یک سرویس در حال اجرا.

sudo systemctl stop mysql

۴. ری‌استارت کردن یک سرویس: `restart`

 

این دستور ریستارت در لینوکس، یک سرویس را متوقف و بلافاصله دوباره راه‌اندازی می‌کند. این دستور معمولا پس از اعمال تغییرات در فایل‌های پیکربندی یک سرویس استفاده می‌شود.

sudo systemctl restart sshd

۵. فعال کردن یک سرویس در بوت: `enable`

 

این دستور باعث می‌شود که سرویس مورد نظر شما به صورت خودکار پس از هر بار راه‌اندازی مجدد (reboot) سرور، اجرا شود.

sudo systemctl enable apache2

۶. غیرفعال کردن یک سرویس در بوت: `disable`

 

این دستور از اجرای خودکار یک سرویس در هنگام بوت شدن سرور جلوگیری می‌کند.

sudo systemctl disable unattended-upgrades

 

لیست نام سرویس‌های پرکاربرد

 

یکی از چالش‌ها، دانستن نام دقیق هر سرویس است. این نام می‌تواند در خانواده‌های مختلف لینوکس کمی متفاوت باشد.

برای دبیان و اوبونتو (Debian/Ubuntu):

 

  • وب سرور آپاچی: apache2
  • وب سرور Nginx: nginx
  • دیتابیس MySQL: mysql
  • دیتابیس MariaDB: mariadb
  • دیتابیس PostgreSQL: postgresql
  • سرویس SSH: ssh
  • فایروال UFW: ufw
  • سرویس Cron: cron

برای AlmaLinux, Rocky Linux, CentOS:

 

  • وب سرور آپاچی: httpd
  • وب سرور Nginx: nginx
  • دیتابیس MySQL: mysqld
  • دیتابیس MariaDB: mariadb
  • سرویس SSH: sshd
  • فایروال firewalld: firewalld
  • سرویس Cron: crond

 

دستورات مربوط به ریبوت و خاموش کردن کل سرور

 

گاهی اوقات نیاز دارید به جای یک سرویس خاص، کل سیستم‌عامل را مدیریت کنید.

    • ریبوت کردن سرور:
sudo reboot
    • خاموش کردن فوری سرور:
sudo shutdown -h now

تسلط بر این دستورات، مدیریت یک خرید vps را برای شما بسیار ساده‌تر و کارآمدتر خواهد کرد.