命令速查service-management
systemctl:检查与管理 systemd 单元
使用 systemctl 查看服务状态,并在确认影响范围后启动、停止或重启 systemd 单元。
systemctl 查询和控制 systemd 系统与服务管理器。它操作的对象是 Unit(单元),例如 ssh.service、multi-user.target 和 foo.timer。
systemctl [选项] 子命令 [单元 ...]unit=ssh.service
# 查看人类可读的当前状态和最近日志systemctl status --no-pager --full "$unit"
# 获取适合脚本读取的明确属性systemctl show --property=LoadState,ActiveState,SubState "$unit"
# 分别检查当前是否运行、是否配置为开机启用systemctl is-active "$unit"systemctl is-enabled "$unit"status 的输出面向人阅读,脚本应优先使用 show 或 is-active 并检查退出状态。
# 仅在已确认服务名、配置和影响范围后执行sudo systemctl restart "$unit"
# 修改单元文件或 drop-in 后,让管理器重新读取配置sudo systemctl daemon-reload执行修改后再次运行 systemctl status "$unit" 和相应的业务检查。start 只影响当前运行状态;enable 主要创建开机依赖关系,两者不能互相替代。
风险与注意事项
Section titled “风险与注意事项”stop、restart、disable和mask会改变系统状态;错误操作网络或 SSH 服务可能立即断开远程会话。- 管理系统单元通常需要 root;
systemctl --user管理当前用户的用户单元,不能替代系统级操作。 - 不要在未知故障上连续重启。先保存状态和日志,再处理根因。
daemon-reload只重新加载单元定义,不会自动重启服务。
该命令适用于以 systemd 为服务管理器的发行版。精简 BusyBox、Buildroot 镜像或其他 init 系统可能没有 systemctl;具体单元名称也由发行版和软件包决定。