如何检查Linux系统服务
如何检查Linux系统服务详细介绍
在 Linux 系统中,检查系统服务的状态、启动情况等,主要依赖于系统使用的初始化系统(如 systemd、sysvinit、upstart 等)。目前主流的 Linux 发行版(如 Ubuntu、CentOS 7+、Fedora 等)普遍使用 systemd,以下是基于 systemd 的常用检查方法,同时兼顾旧版初始化系统的说明:
一、使用
systemctl 命令(适用于 systemd 系统)
1.
检查单个服务的状态
bash
systemctl status 服务名称systemctl status sshd
- 状态说明:
active (running):服务正在运行。active (exited):服务已执行完毕(通常用于一次性脚本服务)。inactive (dead):服务未运行。failed:服务启动失败(可通过日志进一步排查)。
2.
列出所有服务
bash
systemctl list-units servicesystemctl list-units service
3.
检查服务是否开机启动
bash
systemctl is-enabled 服务名称systemctl is-enabled
4.
查看服务日志(关键排查工具)
bash
journalctl 服务名称journalctl nginx
二、旧版初始化系统(sysvinit/upstart,适用于旧版系统)
1.
使用 service 命令(适用于 sysvinit/upstart)
bash
服务名称 statusapache2 status
2.
查看开机启动状态(chkconfig 或 update-rc.d)
- RedHat/CentOS 6 及以下:bash
服务名称 - Debian/Ubuntu:bash
update-rc.d 服务名称
三、通用技巧:快速筛选服务
1.
模糊搜索服务
bash
systemctl status systemctl list-units service 关键词systemctl status systemctl list-units service
2.
查看服务依赖关系
bash
systemctl show 服务名称 Before,After,Requires,Wants
四、常见服务管理命令对比
| 功能 | systemd (新) | sysvinit (旧) |
|---|---|---|
| 查看状态 | systemctl status <服务> |
service <服务> status |
| 启动服务 | systemctl start <服务> |
service <服务> start |
| 停止服务 | systemctl stop <服务> |
service <服务> stop |
| 重启服务 | systemctl restart <服务> |
service <服务> restart |
| 查看开机启动状态 | systemctl is-enabled <服务> |
chkconfig --list <服务> |
| 启用开机启动 | systemctl enable <服务> |
chkconfig <服务> on |
| 禁用开机启动 | systemctl disable <服务> |
chkconfig <服务> off |
五、注意事项
- 服务名称格式:
- systemd 服务通常以
.service结尾(如sshd.service),但命令中可省略后缀(如systemctl status sshd)。
- systemd 服务通常以
- 权限要求:
- 部分操作需管理员权限(使用
sudo或切换至 root 用户)。
- 部分操作需管理员权限(使用
- 发行版差异:
- 如 Ubuntu 22.04+、CentOS 7+ 等均默认使用 systemd;旧版系统(如 CentOS 6、Ubuntu 14.04)可能使用 upstart 或 sysvinit。
通过以上方法,可全面检查 Linux 系统服务的运行状态、启动配置及日志信息。优先使用 systemctl 命令(适用于主流系统),旧版系统请参考对应的 service/chkconfig 指令。