服务器之家:专注于VPS、云服务器配置技术及软件下载分享
分类导航

Linux|Centos|Ubuntu|系统进程|Fedora|注册表|Bios|Solaris|Windows7|Windows10|Windows11|windows server|

服务器之家 - 服务器系统 - Linux - 如何检查你的 Linux 系统是否使用 systemd

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

2024-01-18 15:40Linux中国 Linux

每个主流 Linux 发行版(包括 Ubuntu、Fedora、openSUSE 和 Arch)默认都使用 systemd。 但是有许多非 systemd 发行版,例如使用轻量级 runit 来获得更好性能的 Void Linux 或主要使用 sysvinit 的 Devuan。 当你尝试遵循某些教程或文档并且其中包含

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

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

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

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

这时,你必须检查你的 Linux 系统使用的是 systemd 还是其他系统。

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

ps 1

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

如果你 跟随该符号链接,就可以获取初始化系统信息。有两种方法:

  • 使用 stat 命令
  • 使用 readlink 命令

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

这些方法在 6 个初始化系统中进行了测试:Systemd、OpenRC、SysVinit、Busybox、runit 和 s6。

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

以下是如何使用 stat 命令来了解你正在使用的初始化系统:

stat /sbin/init

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

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

但是,如果你使用 systemd 之外的其他任何东西,它将显示初始化系统的名称,但是如果你使用的是 SysVinit,它只会显示 init 而不是 sysvinit:

如何检查你的 Linux 系统是否使用 systemdSysVinit only displays "init" instead of sysvinit

方法 2:使用 readlink 命令检查初始化系统

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

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

readlink /sbin/init

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

如果你使用 OpenRC 初始化访问,那么它将显示以下输出:

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

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

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

我为你写的小“脚本”

另一种方法是检查 /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

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

有关 systemd 的更多信息

当你知道你正在使用 systemd 支持的发行版,你就可以 使用 systemctl 命令管理服务。

当然你也可以从头开始 创建一个 systemd 服务。

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

原文地址:https://linux.cn/article-16563-1.html

延伸 · 阅读

精彩推荐
  • LinuxLinux date 显示设置时间命令学习

    Linux date 显示设置时间命令学习

    date命令的功能是显示和设置系统日期和时间,需要的朋友可以参考下 ...

    linux命令大全4922019-12-28
  • Linuxlinux的最大打开文件数限制修改方法

    linux的最大打开文件数限制修改方法

    这篇文章主要给大家介绍了关于linux最大打开文件数限制修改的方法,文中将实现的方法一步步介绍的非常详细,对同样遇到这个需求的朋友们具有一定的...

    栖迟於一丘8422022-02-19
  • LinuxLinux如何建立静态链接库.lib文件

    Linux如何建立静态链接库.lib文件

    静态链接库就是.lib文件,能够将函数和数据编译到一个.lib文件中,那么Linux系统要如何建立静态链接库呢?下面为大家详细介绍下 ...

    Linux技术网3742019-10-16
  • LinuxLinux下关于keepalive的内核参数说明

    Linux下关于keepalive的内核参数说明

    在连接被标记为需要keepalive后,最后数据被发送和第一个keepalive探测包的间隔 ...

    Linux教程网8102020-01-05
  • Linuxlinux磁盘分区详解

    linux磁盘分区详解

    在学习 Linux 的过程中,安装 Linux 是每一个初学者的第一个门槛。在这个过程中间,最大的困惑莫过于给硬盘进行分区。虽然,现在各种发行版本的 Linux 已...

    脚本之家3012019-05-19
  • LinuxLinux下查看一个进程占用了哪个端口的方法

    Linux下查看一个进程占用了哪个端口的方法

    这篇文章主要介绍了Linux下查看一个进程占用了哪个端口的方法,本文介绍先查找进程PID,然后使用netstat命令查找这个进程所占用的端口是哪个,需要的朋友可...

    Linux教程网2782019-10-10
  • Linuxlinux启动级别的含义(init 0-6)

    linux启动级别的含义(init 0-6)

    这篇文章主要介绍了linux启动级别的含义(init 0-6),需要的朋友可以参考下...

    linux教程网10452022-12-26
  • Linux解决VScode配置远程调试Linux程序的问题

    解决VScode配置远程调试Linux程序的问题

    这篇文章主要介绍了VScode配置远程调试Linux程序及问题解决办法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可...

    diligentForLife5152020-08-19