مدیریت فرآیند Startup و سرویس‌ها در لینوکس پرینت


## ⚙️ مدیریت فرآیند Startup و سرویس‌ها در لینوکس

هنگامی که یک سیستم لینوکس راه‌اندازی می‌شود، مجموعه‌ای از فرآیندها و سرویس‌ها به طور خودکار اجرا می‌شوند. مدیریت صحیح این فرآیندها می‌تواند به:

* افزایش سرعت بوت،
* کاهش مصرف منابع
* و بهبود امنیت سیستم
کمک کند.

---

### 📋 بخش‌های اصلی فرآیند Startup در لینوکس

1. **BIOS/UEFI**
2. **Boot Loader** (مانند GRUB)
3. **Kernel Initialization**
4. **init/systemd یا سایر init systems**
5. **اجرای سرویس‌ها و login**

در این مقاله تمرکز ما روی مرحله‌ی ۴ و ۵ یعنی **init system و مدیریت سرویس‌ها** است.

---

## 🧩 انواع init systems در لینوکس

| init System | توضیح |
| ----------- | --------------------------------------------------------------- |
| `Systemd` | مدرن‌ترین، در بیشتر توزیع‌ها (مانند Ubuntu 16+، RHEL/CentOS 7+) |
| `SysVinit` | قدیمی، ساختار ساده‌ی اسکریپت‌های `/etc/init.d/` |
| `Upstart` | در Ubuntu بین نسخه 9 تا 14 استفاده شده است |

---

## 🛠 مدیریت Startup در سیستم‌عامل‌های مبتنی بر `systemd`

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

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

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

```bash
sudo systemctl disable <service>
```

### فعال‌سازی مجدد اجرای خودکار:

```bash
sudo systemctl enable <service>
```

---

## 🕵️ مشاهده مدت زمان Startup

برای بررسی اینکه چه سرویسی بیشتر زمان بوت را اشغال می‌کند:

```bash
systemd-analyze blame
```

مثال خروجی:

```
10.002s NetworkManager.service
9.500s apache2.service
1.001s ssh.service
```

### مشاهده نمودار زمانی:

```bash
systemd-analyze plot > startup.svg
```

---

## 🔄 تغییر ترتیب و وابستگی بین سرویس‌ها

در فایل‌های یونیت systemd، می‌توانید وابستگی‌ها را تعریف کنید:

```ini
[Unit]
Description=My App
After=network.target mysql.service
Requires=mysql.service
```

* `After=` تعیین می‌کند سرویس شما بعد از سرویس دیگر اجرا شود.
* `Requires=` بیان می‌کند که سرویس دیگر باید برای اجرای این سرویس فعال باشد.

---

## 🔍 مدیریت سرویس‌های سطح پایین در سیستم‌هایی با SysVinit

### لیست سرویس‌ها:

```bash
chkconfig --list
```

### غیرفعال کردن یک سرویس:

```bash
chkconfig <service> off
```

### فعال کردن:

```bash
chkconfig <service> on
```

---

## ⏱ ابزارهای مکمل برای کنترل Startup

* `htop`: برای مشاهده فرآیندها به صورت تعاملی
* `rcconf` (در توزیع‌های قدیمی): برای مدیریت گرافیکی startup
* `bum` (Boot Up Manager): ابزار GUI برای کنترل startup services (در Ubuntu)

---

## ✅ جمع‌بندی

مدیریت فرآیند بوت و سرویس‌ها در لینوکس، بخشی مهم در مدیریت سرور است. با استفاده از ابزارهای `systemctl`, `systemd-analyze`, `chkconfig` و تعریف وابستگی‌ها، می‌توانید:

* کنترل کامل بر آنچه در زمان راه‌اندازی اجرا می‌شود داشته باشید،
* عملکرد سیستم را بهینه کنید
* و منابع را به شکل مؤثرتری مدیریت نمایید.

 


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

  • 0
« برگشت