systemctl
是 Linux 系统中用于管理 systemd 系统和服务管理器的核心命令。systemd
是现代大多数 Linux 发行版(如 Ubuntu、Debian、CentOS、Fedora、Arch Linux 等)默认的初始化系统(init system),负责启动、停止和管理系统服务、挂载文件系统、日志记录等。
1. 基本语法
systemctl [ 选项] < 命令> [ 服务名]
服务名 通常是 服务名.service
(如 nginx.service
),但可以省略 .service
后缀(如直接写 nginx
)。
2. 常用命令
服务管理
命令 作用 systemctl start <服务名>
启动服务 systemctl stop <服务名>
停止服务 systemctl restart <服务名>
重启服务 systemctl reload <服务名>
重新加载配置(不重启服务) systemctl status <服务名>
查看服务状态(运行/失败/日志) systemctl enable <服务名>
设置开机自启 systemctl disable <服务名>
取消开机自启 systemctl is-enabled <服务名>
检查是否开机自启 systemctl is-active <服务名>
检查服务是否正在运行
系统状态
命令 作用 systemctl list-units --type=service
列出所有已加载的服务 systemctl list-units --type=service --all
列出所有服务(包括未加载的) systemctl list-unit-files
查看所有服务的开机启动状态 systemctl --failed
查看失败的服务 systemctl daemon-reload
重新加载 systemd 配置(修改服务文件后需执行)
系统控制
命令 作用 systemctl reboot
重启系统 systemctl poweroff
关机 systemctl suspend
挂起(睡眠) systemctl hibernate
休眠 systemctl rescue
进入救援模式(单用户模式) systemctl emergency
进入紧急模式
日志查看
命令 作用 journalctl -u <服务名>
查看特定服务的日志 journalctl -xe
查看详细系统日志(排错常用)
3. 实际示例
管理 Nginx 服务
sudo systemctl start nginx
sudo systemctl status nginx
sudo systemctl enable nginx
sudo systemctl restart nginx
sudo systemctl reload nginx
排查服务故障
sudo systemctl --failed
sudo journalctl -u nginx -xe
修改服务配置后重载
sudo nano /etc/systemd/system/nginx.service
sudo systemctl daemon-reload
sudo systemctl restart nginx
4. 服务文件路径
系统默认服务文件:/usr/lib/systemd/system/
自定义服务文件:/etc/systemd/system/
(优先覆盖默认配置)
5. 注意事项
需要 root 权限 :大多数 systemctl
操作需要 sudo
。服务名格式 :通常省略 .service
(如 nginx
等价于 nginx.service
)。依赖关系 :systemd
会自动处理服务依赖(如启动 nginx
前先启动网络)。
通过 systemctl
,你可以高效管理系统服务,适合运维、开发或日常使用。如果需要更深入的功能,可以查阅 man systemctl
或官方文档。