当前位置:首页>Linux>systemctl 超全精讲(Linux/麒麟系统通用)

systemctl 超全精讲(Linux/麒麟系统通用)

  • 2026-10-11 07:12:53
systemctl 超全精讲(Linux/麒麟系统通用)

systemctl  是 systemd 系统 的核心管理命令,用于服务、开机自启、系统状态、日志、电源等管理,主流 CentOS7+/Ubuntu16+/麒麟OS 都用它。

一、基础语法

bash
systemctl [选项] [操作] [服务名/单元名]
 

服务文件默认路径: /usr/lib/systemd/system/ 、 /etc/systemd/system/ 

 

二、常用分类命令(按场景)

1. 服务启停、重启、停止(最常用)

bash
# 启动服务
systemctl start 服务名

# 停止服务
systemctl stop 服务名

# 重启服务
systemctl restart 服务名

# 重新加载配置(不重启服务,只刷新配置)
systemctl reload 服务名

# 查看服务当前状态(重点)
systemctl status 服务名
 

status 字段说明

-  active (running) :正常运行
-  inactive (dead) :已停止
-  failed :启动失败
-  enabled :开机自启
-  disabled :开机不自启

2. 开机自启管理

bash
# 设置开机自启
systemctl enable 服务名

# 关闭开机自启
systemctl disable 服务名

# 临时禁止开机启动(锁定,无法enable)
systemctl mask 服务名

# 解锁
systemctl unmask 服务名

# 查看是否开机自启
systemctl is-enabled 服务名
 

3. 查看系统/所有服务状态

bash
# 列出所有已加载单元(服务、挂载、套接字等)
systemctl list-units

# 只看正在运行的服务
systemctl list-units --type=service

# 查看所有已安装服务(含未启动)
systemctl list-unit-files --type=service

# 查看启动失败的服务
systemctl --failed
 

4. 重载系统服务配置(修改.service文件后必用)

修改了自定义服务文件后,必须执行刷新:

bash
systemctl daemon-reload
 

5. 系统全局操作(关机、重启、休眠)

bash
# 重启系统
systemctl reboot

# 关机
systemctl poweroff

# 挂起(休眠到内存)
systemctl suspend

# 休眠(写入硬盘)
systemctl hibernate
 

6. 查看系统运行级别/启动目标

Linux 现在用 target 替代旧的 runlevel:

bash
# 查看当前默认启动模式
systemctl get-default

# 设置为图形界面(桌面)
systemctl set-default graphical.target

# 设置为字符界面(纯命令行)
systemctl set-default multi-user.target
 

7. 查看服务依赖、详情

bash
# 查看服务详细信息、依赖、路径
systemctl show 服务名

# 查看该服务依赖哪些单元
systemctl list-dependencies 服务名
 

8. 管理服务日志(搭配 journalctl)

bash
# 查看指定服务日志
journalctl -u 服务名

# 实时滚动查看日志(类似 tail -f)
journalctl -u 服务名 -f

# 查看本次开机以来所有日志
journalctl -b
 

 

三、实战示例(直接复制可用)

以  sshd (远程ssh服务)举例:

bash
# 查看ssh状态
systemctl status sshd

# 启动ssh
systemctl start sshd

# 开机自启ssh
systemctl enable sshd

# 重启ssh
systemctl restart sshd

# 关闭开机自启
systemctl disable sshd
 

 

四、常见排错小技巧

1. 服务启动失败
先看状态: systemctl status xxx 
再看详细日志: journalctl -u xxx -f 
2. 改完 .service 文件不生效
执行: systemctl daemon-reload  再重启服务
3. 提示 Unit xxx could not be found
服务名写错,去  /usr/lib/systemd/system/  核对真实服务名

 

五、简写速记表

功能 命令
启动 start
停止 stop
重启 restart
状态 status
开机自启 enable
关闭自启 disable
刷新配置 daemon-reload
查看日志 journalctl -u 服务名

需要我再教你如何手写一个自定义 systemd 服务(比如后台挂程序、开机自启脚本)吗?

最新文章

随机文章