如何查看Linux系统服务的运行状态?service与systemctl对比

linux系统中查看服务运行状态常用service和systemctl两种方式。1. service适用于老版本sysv init系统,命令为service status,调用/etc/init.d/脚本执行;2. systemctl用于现代systemd系统,命令为systemctl status ,提供更丰富的信息如启用状态和日志,推荐使用;3. 两者区别在于底层系统、配置文件位置、功能支持及日志查看;4. 实际使用建议通过ps -p 1 -o comm=判断系统类型,优先在脚本中使用systemctl is-active判断服务状态,注意不同发行版服务名称差异。

如何查看Linux系统服务的运行状态?service与systemctl对比

linux系统中查看服务运行状态,常用的方式有两种:service 和 systemctl。它们都能实现目标,但背后的技术和使用场景有所不同。如果你经常在不同版本的Linux系统上操作,了解这两者的区别和用法会很有帮助。

如何查看Linux系统服务的运行状态?service与systemctl对比


1. service 命令的基本用法

service 是比较传统的服务管理方式,适用于采用 SysV init 系统的老版本 Linux(比如 centos 6 或更早)。

如何查看Linux系统服务的运行状态?service与systemctl对比

查看某个服务状态的命令格式如下:

service <服务名> status

例如:

如何查看Linux系统服务的运行状态?service与systemctl对比

service sshd status

它会输出该服务当前是否正在运行,以及一些基本的运行信息。

注意:service 命令本身只是一个前端工具,它会根据具体的 init 系统调用对应的脚本(通常是 /etc/init.d/ 下的脚本)来执行操作。


2. systemctl 命令的现代方式

现在大多数主流发行版(如 CentOS 7+、ubuntu 16.04+、debian 8+)都采用了 systemd 作为默认的初始化系统,推荐使用 systemctl 来管理系统服务。

查看服务状态的标准命令是:

systemctl status <服务名>

例如:

systemctl status ssh

这个命令不仅能告诉你服务是否在运行,还会显示服务的启用状态(开机是否自启)、最近的日志条目等更多信息。

如果你想只看服务是否运行,可以用下面这个更简洁的命令:

systemctl is-active <服务名>

输出结果为 active 表示正在运行,inactive 表示未运行。


3. service 与 systemctl 的主要区别

特性 service systemctl
使用系统 SysV init systemd
配置文件位置 /etc/init.d/ /usr/lib/systemd/system/ 或 /etc/systemd/system/
查看服务状态 service status systemctl status
控制服务 启动/停止/重启 支持更多操作(enable/disable/is-enabled 等)
日志信息 一般不直接提供日志 可结合 journalctl 查看详细日志

简单来说,service 更“基础”,适合老旧系统;而 systemctl 功能更强,信息更丰富,是现代系统的标配。


4. 实际使用建议

  • 如果你不确定用哪个命令,可以先试试 ps -p 1 -o comm=,看看 PID 1 的进程是什么。如果输出是 systemd,那应该用 systemctl。
  • 在脚本或自动化任务中,优先使用 systemctl is-active 来判断服务状态,因为它的输出更稳定,便于解析。
  • 不同发行版的服务名称可能略有差异。例如 SSH 服务,在 CentOS 中是 sshd,而在 Ubuntu 中是 ssh。注意区分。

总的来说,service 和 systemctl 都能用来查看服务状态,关键在于你使用的系统类型。熟悉两者之间的区别,可以帮助你在不同环境下快速定位问题。

基本上就这些了。

© 版权声明
THE END
喜欢就支持一下吧
点赞13 分享