systemctl - 系统命令 (System Commands)
管理 systemd 单元并控制系统服务(启动、停止、启用等)。
| 命令指令 | 含义说明 |
|---|---|
systemctl halt |
停止所有正在运行的软件,保持硬件通电 |
systemctl hibernate |
将系统内存内容保存到磁盘并关闭硬件电源 |
systemctl poweroff |
停止并关闭系统电源 |
systemctl reboot |
重启系统 |
systemctl - 服务命令 (Service Commands)
| 命令指令 | 含义说明 |
|---|---|
systemctl start <service> |
立即启动服务 |
systemctl stop <service> |
停止正在运行的服务 |
systemctl restart <service> |
重启服务 |
systemctl reload <service> |
重新加载服务配置而不重启 |
systemctl enable <service> |
启用服务在启动时自动运行 |
systemctl disable <service> |
禁用启动时自动运行 |
systemctl status <service> |
显示当前状态和最近日志 |
systemctl mask <service> |
阻止服务被启动 |
systemctl unmask <service> |
移除屏蔽以便服务可以再次启动 |
systemctl list-units |
列出活动单元 |
systemctl list-unit-files |
列出所有单元文件及其启用状态 |
查询和过滤 systemd 日志中的日志。
| 命令指令 | 含义说明 |
|---|---|
journalctl |
显示整个日志 |
journalctl -b |
显示当前启动的日志 |
journalctl --list-boots |
列出所有启动会话 |
journalctl -b -1 |
显示上一次启动的日志 |
journalctl -u <service> |
显示特定单元/服务的日志 |
journalctl -n 100 |
显示最后 100 条日志条目 |
journalctl -f |
跟踪新的日志条目(类似 tail -f 风格) |
journalctl -p err..emerg |
仅显示错误(及以上)优先级日志 |
journalctl --disk-usage |
显示日志的磁盘使用情况 |
journalctl --since today |
显示今天以来的日志 |
检查和监控 D-Bus(桌面总线)以进行调试或内省。
| 命令指令 | 含义说明 |
|---|---|
busctl list |
列出总线上的所有服务/对等点 |
busctl status [SERVICE\|PID] |
显示服务或 PID 的进程信息和凭据 |
busctl monitor [SERVICE...] |
转储实时消息流量,按 Ctrl+C 停止 |
busctl capture [SERVICE...] |
将总线流量捕获到 pcap 文件 |
busctl tree [SERVICE...] |
显示服务导出的对象树 |
管理用户会话和登录相关设置。
| 命令指令 | 含义说明 |
|---|---|
loginctl list-sessions |
列出所有活动会话 |
loginctl list-users |
列出已登录用户 |
loginctl user-status <UID> |
显示用户 <UID> 的所有会话和进程 |
loginctl session-status <ID> |
显示会话 <ID> 的详细信息和日志 |
loginctl show-session <ID> |
显示会话的机器可解析属性 |
loginctl terminate-session <ID> |
结束会话 <ID> 中的所有进程 |
loginctl lock-session <ID> |
锁定指定会话 |
loginctl unlock-session <ID> |
解锁指定会话 |
分析系统启动性能和单元依赖关系。
| 命令指令 | 含义说明 |
|---|---|
systemd-analyze |
显示总启动时间细分 |
systemd-analyze blame |
按启动时间列出服务 |
systemd-analyze plot > boot.svg |
生成启动序列的 SVG 视图 |
实时监控控制组(cgroups)的资源使用情况(CPU、内存、I/O)。
| 命令指令 | 含义说明 |
|---|---|
systemd-cgtop |
监控最高控制组资源使用情况 |
systemd-cgtop -c |
按 CPU 使用率对控制组排序 |
systemd-cgtop -d <delay> |
更改刷新延迟间隔 |
管理系统日期、时间、时区和 NTP 同步。
| 命令指令 | 含义说明 |
|---|---|
timedatectl status |
显示当前日期/时间设置 |
timedatectl list-timezones |
列出所有可用时区 |
timedatectl set-timezone <Zone> |
设置系统时区 |
timedatectl set-time "YYYY-MM-DD" |
手动设置日期 |
timedatectl set-time "HH:MM:SS" |
手动设置时间 |
timedatectl set-ntp true |
启用 NTP 同步 |
timedatectl set-ntp false |
禁用 NTP 同步 |
与 systemd-resolved DNS 解析器服务交互。
| 命令指令 | 含义说明 |
|---|---|
resolvectl status |
显示 DNS 配置和链接信息 |
resolvectl query <hostname> |
通过 systemd-resolved 解析主机名 |
resolvectl dns <interface> <IP> |
为特定接口设置 DNS 服务器 |
resolvectl domain <interface> <name> |
为接口设置搜索域 |
resolvectl flush-caches |
清除由 systemd-resolved 管理的 DNS 缓存 |
resolvectl reset-statistics |
重置所有 DNS 解析统计数据 |
查询和设置系统主机名(静态、临时、友好)及相关元数据。
命令列表
| 命令指令 | 含义说明 |
|---|---|
hostnamectl status |
显示当前主机名和系统信息 |
hostnamectl hostname <NAME> |
设置静态/临时/友好主机名 |
hostnamectl set-hostname <NAME> --static |
仅设置静态主机名 |
hostnamectl set-hostname <NAME> --transient |
仅设置临时主机名 |
hostnamectl set-hostname <NAME> --pretty |
设置友好(用户友好的)主机名 |
hostnamectl set-chassis <TYPE> |
设置机箱类型(例如 desktop、laptop、server) |
↓ 说明 (Description)
- 静态 (Static) - 存储在 `/etc/hostname` 中的永久主机名。在启动时使用。
- 临时 (Transient) - 在运行时设置的临时主机名(通常由 DHCP 或手动设置)。重启后丢失。
- 友好 (Pretty) - 用户友好的显示名称(可以包含空格和特殊字符)。
将命令作为临时 systemd 单元(服务、作用域、定时器等)运行。
| 命令指令 | 含义说明 |
|---|---|
systemd-run <command> |
将命令作为临时 .service 单元运行 |
systemd-run -p BlockIOWeight=10 updatedb |
使用特定资源限制属性运行 |
systemd-run -p MemoryMax=100M script.sh |
以内存使用限制运行内存密集型任务 |
systemd-run --on-calendar='YYYY-MM-DD HH:MM' script.sh |
计划脚本在特定日期和时间运行 |
systemd-run -E VAR=value script.sh |
使用设置的环境变量运行脚本 |
systemd 限制类型 (Types of systemd limits)
可以施加不同类型的限制:
- CPU 限制 (CPU Limits)
- 内存限制 (Memory Limits)
- I/O 限制 (I/O Limits)
- 任务/线程限制 (Task/Thread Limits)
- 安全/隔离 (Security/Isolation)
- 执行/环境 (Execution/Environment)
示例 (Example)
systemd-run -p MemoryMax=100M -p CPUQuota=50% scriptFile.sh