linux 下管理服务最标准的方式是 systemctl,它取代 service 和 chkconfig,可统一控制启停、开机自启及状态查看;常用命令包括 status、start/stop/restart、enable/disable、journalctl 查日志等。

Linux 下管理服务最标准、最通用的方式就是用 systemctl,它是 systemd 系统和服务管理器的核心命令,取代了旧的 service 和 chkconfig。掌握它,就能统一控制服务的启停、开机自启、状态查看等操作。
查看服务状态和基本信息
运行服务前,先确认它是否存在、当前是否运行:
- systemctl status 服务名 —— 查看服务详细状态(如
systemctl status sshd) - systemctl list-unit-files –type=service —— 列出所有服务及其开机启动状态(enabled/disabled)
- systemctl is-active 服务名 —— 快速返回 active/inactive(适合脚本判断)
- systemctl is-enabled 服务名 —— 查看是否设置为开机自启
启动、停止、重启服务
这些是日常最常用的操作,注意:普通用户需加 sudo,除非有对应权限:
- systemctl start 服务名 —— 立即启动服务(不写 .service 后缀也可,如
nginx或nginx.service都行) - systemctl stop 服务名 —— 立即停止服务
- systemctl restart 服务名 —— 先 stop 再 start,适用于配置修改后重载
- systemctl reload 服务名 —— 仅重载配置(不中断服务),前提是服务本身支持(如 nginx、httpd)
设置或取消开机自启
服务是否随系统启动,由 enable 和 disable 控制,本质是创建或删除 /etc/systemd/system/ 下的软链接:
- systemctl enable 服务名 —— 设置开机自启(同时会立即启动?不一定,只建链接)
- systemctl disable 服务名 —— 取消开机自启
- systemctl daemon-reload —— 修改了服务单元文件(如 /etc/systemd/system/myapp.service)后必须执行,让 systemd 重新加载配置
排查服务启动失败的常见方法
如果 start 失败,别急着重装,先看日志:
- journalctl -u 服务名 -n 50 –no-pager —— 查看该服务最近 50 行日志
- journalctl -u 服务名 –since “2 hours ago“ —— 查指定时间范围内的日志
- systemctl show 服务名 —— 显示服务完整配置(含 ExecStart、WorkingDirectory 等),常用于核对路径或权限问题
- 检查服务文件语法:systemd-analyze verify /path/to/service.file
基本上就这些。systemctl 命令简洁、逻辑清晰,只要记住“状态查 status、启停用 start/stop、自启用 enable/disable、出错看 journalctl”,日常运维足够应对绝大多数场景。