如何检查您的 Linux 系统是否使用 systemd如何检查您的 Linux 系统是否使用 systemd如何检查您的 Linux 系统是否使用 systemd如何检查您的 Linux 系统是否使用 systemd
  • 业务
  • 目标
  • 支持
  • 登录
找到的结果: {phrase} (显示: {results_count} 共: {results_count_total})
显示: {results_count} 共: {results_count_total}

加载更多搜索结果...

搜索范围
模糊匹配
搜索标题
搜索内容

如何检查您的 Linux 系统是否使用 systemd

发表 admin at 2025年2月28日
类别
  • 未分类
标签

想知道您的 Linux 系统使用哪个 init 服务?以下是如何找到它。

每个主流 Linux 发行版(包括 Ubuntu、Fedora、openSUSE 和 Arch)默认都使用 systemd。

但是有许多非 systemd 发行版,例如使用轻量级 runit 来获得更好性能的 Void Linux 或主要使用 sysvinit 的 Devuan。

当您尝试遵循某些教程或文档并且其中包含特定于 systemd 或某些其他 init 服务的命令时,就会出现问题。

这是你必须检查你的 Linux 系统是否使用 systemd 或其他东西的地方。

一种方法是检查 PID 为 1 的进程(毕竟,init 系统是 Linux 系统上运行的第一个进程)。

ps 1

但它的输出可能会产生误导,因为它经常显示 /sbin/init 这只是实际 init 进程的软链接。

如果您点击该符号链接,您可以获得 init 系统信息。有两种方法可以做到这一点:

  • 使用stat命令

  • 使用 readlink 命令

那么让我们从第一个开始。

?
这些方法使用 6 个 init 系统进行了测试:Systemd、OpenRC、SysVnint、Busybox、runit 和 s6。

方法一:使用stat命令检查systemd是否正在使用

以下是如何使用 stat 命令来了解您正在使用的 init 系统:

stat /sbin/init

如果您使用的是 systemd 支持的发行版,那么它将显示以下输出:

但是,如果您使用的是 systemd 之外的其他任何东西,它将显示 init 名称,除非您使用 SysVnit,它只会显示 init 而不是 sysvnit:

方法2:使用readlink命令检查init系统

与之前的方法不同,当您使用 readlink 命令时,它只会打印 init 系统的名称。

因此,如果你想知道你是否正在使用 Systemd,只需使用以下命令:

readlink /sbin/init

如果您使用 OpenRC init 服务,那么它将显示以下输出:

但如果您使用 SysVnit,那么它会显示以下输出:

我为你写的小“剧本”

另一种方法是检查 /run/systemd/system 目录是否存在。

好吧,最简单的方法是在终端中使用 if-else bash 命令,该命令将检查您是否正在运行由 systemd 驱动的发行版:

if [ -d /run/systemd/system ]; then echo "System is running systemd"; else echo "System is not running systemd"; fi

有关 systemd 的更多信息

一旦您知道您正在使用 systemd 支持的发行版,您可以通过以下方法使用 systemctl 命令来管理服务:

想要从头开始创建一个 systemd 服务吗?你也可以那样做:

我希望本指南对您有所帮助。

©2015-2025 Norria support@norria.com