如何在 Linux 中确定运行的是那种初始化系统
创始人
2024-03-02 13:17:46
0次

你可以通过以下方式确定你的 Linux 发行版中是否正在运行 systemd 或其它初始化系统。

首个进程在你启动 Linux 发行版时开始运行,它称为初始化进程 init( 初始化 initialization 的缩写)。它的进程标识符为 1(即 pid=1)。基于 Unix 的系统中的所有进程和应用程序都是这个初始化进程的后代。

根据功能和特性,存在不同类型的初始化进程。例如,systemd、Runit、OpenRC、sysVinit 等。其中,systemd 是最流行和最现代的一种,被包括 Ubuntu 和 Fedora 在内的所有现代 Linux 发行版使用和采用。

与传统的基于 Unix 的初始化系统相比,systemd 及其性能一直存在争议。但这就是另外一个话题了。

让我们看看如何确定在 Linux 发行版中运行的是 systemd 还是其它初始化系统。

systemd 还是其它初始化系统?

不幸的是,没有直接的命令可以找到它。你可以从初始化进程追溯它,它基本上是到 /sbin/init 的符号链接,即 pid=1。

使用 strings 命令打印嵌入在二进制文件 /sbin/init 中的文本并使用以下命令搜索 init:

strings /sbin/init | grep init

示例 1

在下面的输出中,它是一个运行 Debian(Peppermint OS)的 sysVinit 系统。如你所见,它清楚地显示了 init 进程名称。

strings /sbin/init | grep init

显示使用 sysVinit 而不是 systemd 的示例

如果在上述同一个系统中找 systemd,那么不会有任何结果。因此,你可以得出结论,你正在运行 sysVinit 而不是 systemd。

示例 2

如果你在 systemd 系统中运行上述命令,你可以在输出的第一行轻松看到 systemd 及其版本。

strings /sbin/init | grep systemd

显示它使用 systemd 的示例

示例 3

你也可以尝试使用 pstree 命令打印进程树,它应该会显示第一个进程名称。它应该是 systemd 或 init,如下例所示。

pstree

pstree 显示使用 systemd

pstree 显示使用 init

这就好了。这样你就可以轻松找出你的发行版是使用 systemd 还是其他的。


via: https://www.debugpoint.com/systemd-or-init/

作者:Arindam 选题:lkxed 译者:geekpi 校对:wxy

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

热门资讯

“Linux 中国” 开源社区... 这是一个艰难的决定 —— 这不是调侃,而是当你真正做出改变了你十几年生活轨迹的决定时,你就会明白这个...
硬核观察 #1263 德国铁路... #1 德国铁路公司招聘 Windows for Workgroups 3.11 管理员该职位要求了解...
人工智能教程(七):Sciki... 在本系列的 上一篇文章 中,我们用 TensorFlow 构建了第一个神经网络,然后还通过 Kera...
关闭 WSL 中正在运行的 L... 以下是使用 WSL 关闭在 Windows 内运行的 Linux 系统的不同方法。你使用 WSL 在...
MX Linux 23.2 “... 最新的 MX Linux 23.2 小版本更新带来了基本的改进和新增功能。MX Linux 推出了 ...
硬核观察 #1262 网络上最... #1 网络上最古老的软件存档库之一即将关闭美国新墨西哥州立大学(NMSU)最近宣布,即将于 2024...
如何在 RHEL 上通过绑定配... 在 Linux 中,你可以根据自己的需要创建高级网络设置,如 网络绑定 Network Bondin...
Linux Matrix 消息... Matrix 用户可以升级 Fractal 6 了!Fractal 是目前 最好的 Matrix 客...
如何通过 VLC 使用字幕 使用 VLC 媒体播放器播放和管理字幕的新手指南。我是一个超级动漫迷,如果你想观看最新的剧集,那么你...
硬核观察 #1261 X 计划... #1 X 计划在奥斯汀建立内容审核总部据报道,该部门将招聘 100 名全职员工,将主要关注 CSE ...