Files
my-docs/Linux/LPIC1/01-runlevels.md
2025-07-01 22:15:26 +03:30

85 lines
2.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# 🐧 Linux Runlevels Guide
This guide provides a concise overview of traditional **runlevels** in Linux systems, particularly for **Red Hat** and **Debian**-based distributions. Runlevels define specific states of system operation, historically managed by the `init` system.
---
## 🔄 System Boot Sequence
```plaintext
BIOS → Bootloader → Kernel → init
```
* **BIOS**: Performs hardware checks via **POST** (Power-On Self Test).
* **Bootloader**: Loads the kernel.
* **Kernel**: Initializes system and mounts the root filesystem.
* **init**: Launches system processes based on the selected runlevel.
---
## 📊 Runlevels Comparison
| Runlevel | Description | Red Hat | Debian |
| -------- | ----------------------------------- | ---------------- | --------------- |
| 0 | Halt / Shutdown | ✅ Supported | ✅ Supported |
| 1 | Single-User Mode | ✅ Supported | ✅ Supported |
| 2 | Multi-User (No Network) | ❌ (Includes Net) | ✅ Supported |
| 3 | Multi-User (Network, No GUI) | ✅ Supported | ✅ Supported |
| 4 | User-Defined / Custom | ✅ Supported | ✅ Supported |
| 5 | GUI Mode / *(Halt on some systems)* | ✅ GUI Mode | ⚠️ Custom/Halt? |
| 6 | Reboot | ✅ Supported | ✅ Supported |
> 💡 **Notes**:
> • **Runlevel 5** on Red Hat typically launches a full graphical environment (GUI).
> • On Debian, runlevels 25 are often configured identically and can be customized.
> • Runlevel behavior is configurable via `/etc/inittab` (SysVinit systems).
---
## 🔧 Useful Commands
### ✅ Check Current Runlevel
```bash
runlevel
```
### 🔁 Change Runlevel
```bash
telinit <runlevel>
```
or
```bash
init <runlevel>
```
> ⚠️ **Caution**: Switching runlevels may stop services or terminate user sessions. Use carefully on production systems.
---
## 🚀 Modern Systems: systemd Targets
Most modern Linux distributions use **systemd**, which replaces runlevels with **targets**.
| Runlevel | systemd Target |
| -------- | ------------------- |
| 0 | `poweroff.target` |
| 1 | `rescue.target` |
| 3 | `multi-user.target` |
| 5 | `graphical.target` |
| 6 | `reboot.target` |
### 📌 Common systemd Commands
```bash
# Show default target
systemctl get-default
# Change to graphical mode
systemctl isolate graphical.target
```