CentOS-RHEL-Linux-Enterprise-Community-پایداری-رایگان-سرور-پشتیبانی-تجاری-دیتاسنتر-SLES-OracleLinux-UbuntuLTS-Stream-AlmaLinux-RockyLinux-LTS-Security-Serverدوره رایگان-الگوریتم اول-free-آموزش کامل

لطفا صبر کنید...

مدیریت سرویس‌ها با systemd در CentOS

در CentOS (نسخه‌های 7 به بعد)، سرویس‌ها (Services) با systemd مدیریت می‌شوند. ابزار اصلی شما برای کار با آن دستور systemctl است که کنترل فعال‌سازی، اجرا، متوقف‌سازی، و بررسی وضعیت سرویس‌ها را به‌دست می‌دهد.

1. ساختار systemd

در systemd هر سرویس یک unit file دارد که به طور پیش‌فرض در مسیرهای زیر قرار دارد:

  • /usr/lib/systemd/system/ → فایل‌های سرویس‌های پیش‌فرض سیستم
  • /etc/systemd/system/ → فایل‌های سرویس که مدیر سیستم تعریف یا تغییر داده

نام Unit معمولاً با پسوند .service می‌آید (برای سرویس‌ها)، ولی systemd انواع دیگری هم دارد مثل .mount, .target, .socket.

2. دستورات متداول مدیریت سرویس‌ها

در تمام این دستورات می‌توانید .service را حذف کنید چون systemd خودش آن را اضافه می‌کند. مثال: nginx = nginx.service

🔹 شروع سرویس

systemctl start nginx

🔹 توقف سرویس

systemctl stop nginx

🔹 ریستارت (Restart)

systemctl restart nginx

🔹 بارگذاری مجدد تنظیمات بدون توقف کامل (Reload)

systemctl reload nginx

مناسب برای وقتی که فایل کانفیگ را تغییر داده‌اید.

3. فعال/غیرفعال کردن سرویس در بوت

فعال‌سازی:

systemctl enable nginx

→ سرویس بعد از ریبوت به‌طور خودکار اجرا می‌شود.

غیرفعال کردن:

systemctl disable nginx

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

فعال‌سازی فوری (شروع + فعال برای بوت بعدی):

systemctl enable --now nginx

4. وضعیت سرویس‌ها

systemctl status nginx

خروجی شامل:

  • وضعیت (active / inactive / failed)
  • PID پروسه
  • زمان اجرا
  • لاگ اخیر

5. مشاهده لیست سرویس‌های فعال

systemctl list-units --type=service --state=running

6. مشاهده لاگ سرویس‌ها (Journal)

systemd از journalctl برای لاگ استفاده می‌کند:

  • لاگ کامل یک سرویس:
journalctl -u nginx
  • آخرین لاگ‌ها و پیگیری زنده (مشابه tail -f):
journalctl -u nginx -f

7. ری‌لود systemd بعد از تغییر فایل سرویس

اگر فایل unit را تغییر دادید یا سرویس جدید ایجاد کردید:

systemctl daemon-reload

8. مثال کامل - راه‌اندازی Nginx در CentOS

# نصب
dnf install nginx -y

# فعال و اجرای آنی
systemctl enable --now nginx

# بررسی وضعیت
systemctl status nginx

# مشاهده لاگ
journalctl -u nginx -f

نکات مهم امنیتی

  • اجرای سرویس‌ها را فقط برای موارد ضروری enable کنید تا سطح حمله کمتر شود.
  • وضعیت سرویس‌ها را دوره‌ای بررسی کنید:
systemctl --failed
  • از systemctl mask برای جلوگیری کامل از اجرای ناخواسته یک سرویس استفاده کنید.

مثال:

systemctl mask telnet