پیکربندی اجرای خودکار سرویس‌ها در لینوکس – با systemd و chkconfig پرینت


## 🔁 پیکربندی اجرای خودکار سرویس‌ها در لینوکس – با systemd و chkconfig

در لینوکس، برای مدیریت سرویس‌ها و تعیین اینکه در زمان **بوت** یا **خاموشی سیستم** اجرا یا متوقف شوند، از ابزارهایی مانند `systemctl` یا `chkconfig` استفاده می‌شود (بسته به توزیع لینوکس).

---

## 🛠️ ابزارهای اصلی

| ابزار | مناسب برای |
| ----------- | ------------------------------------------------------------------------------------------------ |
| `systemctl` | سیستم‌هایی با **systemd** (اکثر توزیع‌های مدرن مانند Ubuntu, Debian, CentOS 7+, RHEL 7+, Fedora) |
| `chkconfig` | سیستم‌های قدیمی‌تر با **SysVinit** یا **CentOS 6 و پایین‌تر** |

---

## ✅ بررسی وضعیت یک سرویس

```bash
sudo systemctl status nginx
```

خروجی نشان می‌دهد سرویس فعال است یا نه و آیا در زمان بوت اجرا می‌شود یا نه.

---

## 🚀 فعال‌سازی خودکار سرویس در زمان بوت

```bash
sudo systemctl enable nginx
```

> این دستور، لینک‌هایی در `/etc/systemd/system/` ایجاد می‌کند تا سرویس در زمان بوت اجرا شود.

---

## 🛑 غیرفعال‌سازی اجرای خودکار در زمان بوت

```bash
sudo systemctl disable nginx
```

---

## 🔄 فعال‌سازی یا توقف آنی سرویس (در همین لحظه)

```bash
sudo systemctl start nginx # اجرای فوری سرویس
sudo systemctl stop nginx # توقف فوری سرویس
```

---

## 🔁 فعال‌سازی مجدد (restart) یا بارگذاری مجدد (reload)

```bash
sudo systemctl restart nginx # توقف و اجرای مجدد
sudo systemctl reload nginx # بارگذاری مجدد تنظیمات (بدون توقف سرویس)
```

---

## 📋 مشاهده همه سرویس‌های فعال در زمان بوت

```bash
systemctl list-unit-files --type=service | grep enabled
```

---

## ⏱️ اجرای سرویس‌ها با تأخیر در بوت (Optional)

اگر می‌خواهید سرویسی با تأخیر خاص اجرا شود، می‌توانید یک واحد `systemd` سفارشی بسازید یا از `After=` در فایل سرویس استفاده کنید. نمونه:

```ini
[Unit]
Description=My Custom Service
After=network.target

[Service]
ExecStart=/usr/bin/myscript.sh

[Install]
WantedBy=multi-user.target
```

---

## 🔧 مدیریت سرویس‌ها در سیستم‌های قدیمی (با chkconfig)

```bash
sudo chkconfig nginx on # فعال‌سازی در بوت
sudo chkconfig nginx off # غیرفعال‌سازی
```

برای مشاهده همه سرویس‌ها:

```bash
chkconfig --list
```

---

## 🧪 تست اجرای خودکار بعد از ریبوت

1. سیستم را ریستارت کنید:

```bash
sudo reboot
```

2. سپس با دستور زیر بررسی کنید آیا سرویس موردنظر اجرا شده:

```bash
systemctl status nginx
```

---

## ✅ نتیجه‌گیری

با استفاده از ابزار `systemctl` یا `chkconfig` می‌توانید به‌راحتی سرویس‌های لینوکس را **در زمان بوت فعال یا غیرفعال** کنید و **کنترل دقیقی بر زمان اجرای آن‌ها** داشته باشید. این کار بخشی مهم از مدیریت حرفه‌ای سرورهای لینوکسی است.

 


آیا این پاسخ به شما کمک کرد؟

  • 0
« برگشت