Skip to content
此页的大纲

系统管理

systemd 不仅仅提供系统初始化,还用 systemctl(1) 命令提供通用的系统管理操作

操作命令片段
列出所有 target 单元配置"systemctl list-units --type=target"
列出所有 service 单元配置"systemctl list-units --type=service"
列出所有单元配置类型"systemctl list-units --type=help"
列出内存中所有 socket 单元"systemctl list-sockets"
列出内存中所有 timer 单元"systemctl list-timers"
启动 "$unit""systemctl start $unit"
停止 "$unit""systemctl stop $unit"
重新加载服务相关的配置"systemctl reload $unit"
停止和启动所有 "$unit""systemctl restart $unit"
启动 "$unit" 并停止所有其它的"systemctl isolate $unit"
转换到 "图形" (图形界面系统)"systemctl isolate graphical"
转换到 "多用户" (命令行系统)"systemctl isolate multi-user"
转换到 "应急模式" (单用户命令行系统)"systemctl isolate rescue"
向"$unit"发送杀死信号"systemctl kill $unit"
检查"$unit"服务是否是活动的"systemctl is-active $unit"
检查"$unit"服务是否是失败的"systemctl is-failed $unit"
检查"$unit$PID
显示"$unit$job"的属性
重设失败的"$unit""systemctl reset-failed $unit"
列出所有单元服务的依赖性"systemctl list-dependencies --all"
列出安装在系统上的单元文件"systemctl list-unit-files"
启用 "$unit" (增加符号链接)"systemctl enable $unit"
禁用 "$unit" (删除符号链接)"systemctl disable $unit"
取消遮掩 "$unit" (删除到 "/dev/null" 的符号链接)"systemctl unmask $unit"
遮掩 "$unit" (增加到 "/dev/null" 的符号链接)"systemctl mask $unit"
获取默认的 target 设置"systemctl get-default"
设置默认 target 为"graphical" (图形系统)"systemctl set-default graphical"
设置默认的 target 为"multi-user" (命令行系统)"systemctl set-default multi-user"
显示工作环境变量"systemctl show-environment"
设置环境变量 "variable" 的值为 "value""systemctl set-environment variable=value"
取消环境变量 "variable" 的设置"systemctl unset-environment variable"
重新加载所有单元文件和后台守护进程(daemon)"systemctl daemon-reload"
关闭系统"systemctl poweroff"
关闭和重启系统"systemctl reboot"
挂起系统"systemctl suspend"
休眠系统"systemctl hibernate"

这里, 上面例子中的"$unit",可以是一个单元名(后缀.service 和 .target 是可选的),或者,在很多情况下,也可以是匹配的多个单元 (shell 式样的全局通配符"*", "?", "[]",通过使用 fnmatch(3) ,来匹配目前在内存中的所有单元的基本名称).

上面列子的系统状态改变命令,通常是通过"sudo"来处理,用以获得需要的系统管理权限。

"systemctl status $unit|$PID|$device" 的输出使用有颜色的点("●")来概述单元状态,让人看一眼就知道。

  • 白色的 "●" 表示一个 "不活动"或"变为不活动中"的状态。
  • 红色的 "●"表示“失败”或者“错误”状态。
  • 绿色"●"表示“活动”、“重新加载中”或“激活中”状态。