2025-07-03 18:52:41 +05:30
|
|
|
---
|
|
|
|
|
title: Systemd
|
|
|
|
|
date: 02-07-2025
|
|
|
|
|
icon: icon-systemd
|
|
|
|
|
background: bg-[#00ADEF]
|
|
|
|
|
tags:
|
|
|
|
|
- systemd
|
|
|
|
|
- linux
|
|
|
|
|
categories:
|
|
|
|
|
- Linux Command
|
|
|
|
|
intro: |
|
2025-07-03 19:31:04 +05:30
|
|
|
systemd is the init system and service manager used by most modern Linux distributions.
|
2025-07-03 18:52:41 +05:30
|
|
|
plugins:
|
|
|
|
|
- copyCode
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## systemd Core Utilities{.cols-4}
|
|
|
|
|
|
|
|
|
|
### systemd utility List {.col-span-4}
|
|
|
|
|
|
|
|
|
|
| Utility | Description |
|
|
|
|
|
| ------------------------------------- | -------------------------------------------------------------- |
|
|
|
|
|
| [`systemctl`](#systemctl) | Manages services (start, stop, restart, enable, disable, etc.) |
|
|
|
|
|
| [`journalctl`](#journalctl) | Views and filters logs collected by the systemd journal |
|
|
|
|
|
| [`loginctl`](#loginctl) | Manages user logins and sessions |
|
|
|
|
|
| [`hostnamectl`](#hostnamectl) | Sets or queries the hostname and related machine metadata |
|
|
|
|
|
| [`timedatectl`](#timedatectl) | Sets or queries the system date, time, and NTP settings |
|
|
|
|
|
| [`systemd-analyze`](#systemd-analyze) | Analyzes system boot-up performance |
|
|
|
|
|
| [`systemd-cgtop`](#systemd-cgtop) | Monitors control group resource usage in real time |
|
|
|
|
|
| [`systemd-run`](#systemd-run) | Runs a command as a transient service or scope |
|
|
|
|
|
| [`resolvectl`](#resolvectl) | Resolves domain names using the systemd-resolved service |
|
|
|
|
|
| [`busctl`](#busctl) | Interacts with the D-Bus message bus system |
|
|
|
|
|
|
|
|
|
|
{.left-text}
|
|
|
|
|
|
|
|
|
|
---
|
|
|
|
|
|
|
|
|
|
## Utility Commands {.cols-4}
|
|
|
|
|
|
2025-07-11 16:04:50 +01:00
|
|
|
### systemctl {#systemctl .col-span-2 .row-span-2}
|
2025-07-03 18:52:41 +05:30
|
|
|
|
|
|
|
|
#### systemctl - System Commands
|
|
|
|
|
|
|
|
|
|
- Manage systemd units and control system services (start, stop, enable, etc.).
|
|
|
|
|
|
|
|
|
|
| Command | Description |
|
|
|
|
|
| --------------------- | ------------------------------------------------------------------ |
|
|
|
|
|
| `systemctl halt` | Stop all running software, leave the hardware powered on. |
|
|
|
|
|
| `systemctl hibernate` | Save contents of system memory to disk and power off the hardware. |
|
|
|
|
|
| `systemctl poweroff` | Halt and power off the system. |
|
|
|
|
|
| `systemctl reboot` | Reboot the system. |
|
|
|
|
|
|
|
|
|
|
{.left-text}
|
|
|
|
|
|
|
|
|
|
#### systemctl - Service Commands
|
|
|
|
|
|
|
|
|
|
| Command | Description |
|
|
|
|
|
| ----------------------------- | -------------------------------------------- |
|
|
|
|
|
| `systemctl start <service>` | Start a service immediately |
|
|
|
|
|
| `systemctl stop <service>` | Stop a running service |
|
|
|
|
|
| `systemctl restart <service>` | Restart a service |
|
|
|
|
|
| `systemctl reload <service>` | Reload service configuration without restart |
|
|
|
|
|
| `systemctl enable <service>` | Enable service to start at boot |
|
|
|
|
|
| `systemctl disable <service>` | Disable boot-time start |
|
|
|
|
|
| `systemctl status <service>` | Show current status and recent logs |
|
|
|
|
|
| `systemctl mask <service>` | Prevent service from being started |
|
|
|
|
|
| `systemctl unmask <service>` | Remove mask so it can start again |
|
|
|
|
|
| `systemctl list-units` | List active units |
|
|
|
|
|
| `systemctl list-unit-files` | List all unit files and their enabled state |
|
|
|
|
|
|
|
|
|
|
{.left-text}
|
|
|
|
|
|
2025-07-11 16:04:50 +01:00
|
|
|
### journalctl {#journalctl .col-span-2}
|
2025-07-03 18:52:41 +05:30
|
|
|
|
|
|
|
|
- Query and filter logs from the systemd journal.
|
|
|
|
|
|
|
|
|
|
| Command | Description |
|
|
|
|
|
| -------------------------- | ----------------------------------------- |
|
|
|
|
|
| `journalctl` | Show entire journal |
|
|
|
|
|
| `journalctl -b` | Show logs from current boot |
|
|
|
|
|
| `journalctl --list-boots` | List all boot sessions |
|
|
|
|
|
| `journalctl -b -1` | Logs from previous boot |
|
|
|
|
|
| `journalctl -u <service>` | Show logs for a specific unit/service |
|
|
|
|
|
| `journalctl -n 100` | Show the last 100 log entries |
|
|
|
|
|
| `journalctl -f` | Follow new log entries (tail -f style) |
|
|
|
|
|
| `journalctl -p err..emerg` | Show only error (and above) priority logs |
|
|
|
|
|
| `journalctl --disk-usage` | Show disk usage of journal |
|
|
|
|
|
| `journalctl --since today` | Show logs since today |
|
|
|
|
|
|
|
|
|
|
{.left-text}
|
|
|
|
|
|
2025-07-11 16:04:50 +01:00
|
|
|
### busctl {#busctl .col-span-2}
|
2025-07-03 18:52:41 +05:30
|
|
|
|
|
|
|
|
- Inspect and monitor D-Bus (Desktop Bus) for debugging or introspection.
|
|
|
|
|
|
|
|
|
|
| Command | Description |
|
|
|
|
|
| ------------------------------ | -------------------------------------------------- |
|
|
|
|
|
| `busctl list` | List all services/peers on the bus |
|
|
|
|
|
| `busctl status [SERVICE\|PID]` | Show process info & credentials for service or PID |
|
|
|
|
|
| `busctl monitor [SERVICE...]` | Dump live message traffic, Ctrl+C to stop |
|
|
|
|
|
| `busctl capture [SERVICE...]` | Capture bus traffic to a pcap file |
|
|
|
|
|
| `busctl tree [SERVICE...]` | Show object tree exported by service(s) |
|
|
|
|
|
|
|
|
|
|
{.left-text}
|
|
|
|
|
|
2025-07-11 16:04:50 +01:00
|
|
|
### loginctl{#loginctl .col-span-2 .row-span-2}
|
2025-07-03 18:52:41 +05:30
|
|
|
|
|
|
|
|
- Manages user sessions and login-related settings.
|
|
|
|
|
|
|
|
|
|
| Command | Description |
|
|
|
|
|
| --------------------------------- | ---------------------------------------------- |
|
|
|
|
|
| `loginctl list-sessions` | List all active sessions |
|
|
|
|
|
| `loginctl list-users` | List logged-in users |
|
|
|
|
|
| `loginctl user-status <UID>` | Show all sessions & processes for user `<UID>` |
|
|
|
|
|
| `loginctl session-status <ID>` | Show detailed info and logs for session `<ID>` |
|
|
|
|
|
| `loginctl show-session <ID>` | Show machine-parsable properties of a session |
|
|
|
|
|
| `loginctl terminate-session <ID>` | End all processes in session `<ID>` |
|
|
|
|
|
| `loginctl lock-session <ID>` | Lock the specified session |
|
|
|
|
|
| `loginctl unlock-session <ID>` | Unlock the specified session |
|
|
|
|
|
|
|
|
|
|
{.left-text}
|
|
|
|
|
|
2025-07-11 16:04:50 +01:00
|
|
|
### systemd-analyze{#systemd-analyze .col-span-2}
|
2025-07-03 18:52:41 +05:30
|
|
|
|
|
|
|
|
- Analyze system boot performance and unit dependencies.
|
|
|
|
|
|
|
|
|
|
| Command | Description |
|
|
|
|
|
| --------------------------------- | ------------------------------------- |
|
|
|
|
|
| `systemd-analyze` | Show total boot time breakdown |
|
|
|
|
|
| `systemd-analyze blame` | List services ordered by startup time |
|
|
|
|
|
| `systemd-analyze plot > boot.svg` | Generate SVG visual of boot sequence |
|
|
|
|
|
|
|
|
|
|
{.left-text}
|
|
|
|
|
|
2025-07-11 16:04:50 +01:00
|
|
|
### systemd-cgtop{#systemd-cgtop .col-span-2}
|
2025-07-03 18:52:41 +05:30
|
|
|
|
|
|
|
|
- Real-time monitoring of resource usage by cgroups (CPU, memory, I/O).
|
|
|
|
|
|
|
|
|
|
| Command | Description |
|
|
|
|
|
| -------------------------- | ---------------------------------- |
|
|
|
|
|
| `systemd-cgtop` | Monitor top cgroups resource usage |
|
|
|
|
|
| `systemd-cgtop -c` | Sort cgroups by CPU usage |
|
|
|
|
|
| `systemd-cgtop -d <delay>` | Change refresh delay interval |
|
|
|
|
|
|
|
|
|
|
{.left-text}
|
|
|
|
|
|
2025-07-11 16:04:50 +01:00
|
|
|
### timedatectl{#timedatectl .col-span-2}
|
2025-07-03 18:52:41 +05:30
|
|
|
|
|
|
|
|
- Manage system date, time, timezone, and NTP synchronization.
|
|
|
|
|
|
|
|
|
|
| Command | Description |
|
|
|
|
|
| ----------------------------------- | ------------------------------- |
|
|
|
|
|
| `timedatectl status` | Show current date/time settings |
|
|
|
|
|
| `timedatectl list-timezones` | List all available timezones |
|
|
|
|
|
| `timedatectl set-timezone <Zone>` | Set system timezone |
|
|
|
|
|
| `timedatectl set-time "YYYY-MM-DD"` | Manually set date |
|
|
|
|
|
| `timedatectl set-time "HH:MM:SS"` | Manually set time |
|
|
|
|
|
| `timedatectl set-ntp true` | Enable NTP sync |
|
|
|
|
|
| `timedatectl set-ntp false` | Disable NTP sync |
|
|
|
|
|
|
|
|
|
|
{.left-text}
|
|
|
|
|
|
2025-07-11 16:04:50 +01:00
|
|
|
### resolvectl{#resolvectl .col-span-2}
|
2025-07-03 18:52:41 +05:30
|
|
|
|
|
|
|
|
- Interact with systemd-resolved DNS resolver service.
|
|
|
|
|
|
|
|
|
|
| Command | Description |
|
|
|
|
|
| -------------------------------------- | ----------------------------------------------- |
|
|
|
|
|
| `resolvectl status` | Show DNS configuration and link info |
|
|
|
|
|
| `resolvectl query <hostname>` | Resolve hostname via systemd-resolved |
|
|
|
|
|
| `resolvectl dns <interface> <IP>` | Set DNS server(s) for a specific interface |
|
|
|
|
|
| `resolvectl domain <interface> <name>` | Set search domain(s) for an interface |
|
|
|
|
|
| `resolvectl flush-caches` | Clear the DNS cache managed by systemd-resolved |
|
|
|
|
|
| `resolvectl reset-statistics` | Reset all DNS resolution statistics |
|
|
|
|
|
|
|
|
|
|
{.left-text}
|
|
|
|
|
|
2025-07-11 16:04:50 +01:00
|
|
|
### hostnamectl{#hostnamectl .col-span-4}
|
2025-07-03 18:52:41 +05:30
|
|
|
|
|
|
|
|
- Query and set the system hostname (static, transient, pretty) and related metadata.
|
|
|
|
|
|
|
|
|
|
#### ↓ Commands
|
|
|
|
|
|
|
|
|
|
| Command | Description |
|
|
|
|
|
| --------------------------------------------- | ------------------------------------------------ |
|
|
|
|
|
| `hostnamectl status` | Show current hostname & system info |
|
|
|
|
|
| `hostnamectl hostname <NAME>` | Set the static/transient/pretty hostname |
|
|
|
|
|
| `hostnamectl set-hostname <NAME> --static` | Set only the static hostname |
|
|
|
|
|
| `hostnamectl set-hostname <NAME> --transient` | Set only the transient hostname |
|
|
|
|
|
| `hostnamectl set-hostname <NAME> --pretty` | Set the pretty (user-friendly) hostname |
|
|
|
|
|
| `hostnamectl set-chassis <TYPE>` | Set chassis type (e.g., desktop, laptop, server) |
|
|
|
|
|
|
|
|
|
|
{.left-text}
|
|
|
|
|
|
|
|
|
|
#### ↓ Description
|
|
|
|
|
|
|
|
|
|
```markdown
|
|
|
|
|
- Static - The permanent hostname stored in `/etc/hostname`. Used at boot time.
|
|
|
|
|
- Transient - Temporary hostname set at runtime (often by DHCP or manually). Lost on reboot.
|
|
|
|
|
- Pretty - A user-friendly, display name (can include spaces and special characters).
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
{.left-text}
|
|
|
|
|
|
2025-07-11 16:04:50 +01:00
|
|
|
### systemd-run{#systemd-run .col-span-4}
|
2025-07-03 18:52:41 +05:30
|
|
|
|
|
|
|
|
- Run a command as a transient systemd unit (service, scope, timer, etc.).
|
|
|
|
|
|
|
|
|
|
| Command | Description |
|
|
|
|
|
| -------------------------------------------------------- | -------------------------------------------------- |
|
|
|
|
|
| `systemd-run <command>` | Run command as a transient `.service` unit |
|
|
|
|
|
| `systemd-run -p BlockIOWeight=10 updatedb` | Run with a specific resource limit property |
|
|
|
|
|
| `systemd-run -p MemoryMax=100M script.sh` | Run a memory-hungry task with a memory usage limit |
|
|
|
|
|
| `systemd-run --on-calendar='YYYY-MM-DD HH:MM' script.sh` | Schedule script to run at a specific date and time |
|
|
|
|
|
| `systemd-run -E VAR=value script.sh` | Run a script with environment variables set |
|
|
|
|
|
|
|
|
|
|
{.left-text}
|
|
|
|
|
|
|
|
|
|
#### Types of systemd limits{.col-span-3}
|
|
|
|
|
|
|
|
|
|
```markdown
|
|
|
|
|
There are different kinds of limit that can be imposed:
|
|
|
|
|
|
|
|
|
|
- CPU Limits
|
|
|
|
|
- Memory Limits
|
|
|
|
|
- I/O Limits
|
|
|
|
|
- Task/Thread Limits
|
|
|
|
|
- Security/Isolation
|
|
|
|
|
- Execution/Environment
|
|
|
|
|
```
|
|
|
|
|
|
|
|
|
|
Example
|
|
|
|
|
|
|
|
|
|
```bash
|
|
|
|
|
systemd-run -p MemoryMax=100M -p CPUQuota=50% scriptFile.sh
|
|
|
|
|
```
|
2025-07-03 19:31:04 +05:30
|
|
|
|
|
|
|
|
## Also See
|
|
|
|
|
|
|
|
|
|
- [linux training academy](https://www.linuxtrainingacademy.com/systemd-cheat-sheet/)
|
|
|
|
|
- [linux Audit Cheat Sheet](https://linux-audit.com/cheat-sheets/systemd/)
|
|
|
|
|
- [RedHat Reference](https://www.redhat.com/en/blog/systemd-commands)
|