当前位置: 首页 > 科技观察

如何确定您在Linux中运行的是哪个初始化系统

时间:2023-03-17 11:57:39 科技观察

启动Linux发行版时开始运行的第一个进程称为初始化进程init(初始化的简称)。它的进程标识符是1(即pid=1)。基于Unix的系统中的所有进程和应用程序都是此初始化进程的后代。根据功能和特点,有不同类型的初始化过程。例如,systemd、Runit、OpenRC、sysVinit等。其中,systemd是最流行和最现代的,被包括Ubuntu和Fedora在内的所有现代Linux发行版所使用和采用。systemd及其与传统的基于Unix的init系统相比的性能一直存在争议。但那是另一个话题。让我们看看如何确定您在Linux发行版上运行的是systemd还是其他init系统。systemd或其他一些初始化系统?不幸的是,没有直接的命令可以找到它。您可以从init进程追溯它,它基本上是pid=1的/sbin/init的符号链接。使用strings命令打印二进制文件/sbin/init中嵌入的文本,并使用以下命令搜索init:strings/sbin/init|grepinit示例1在下面的输出中,它是一个运行Debian(PeppermintOS)的sysVinit系统。如您所见,它清楚地显示了init进程名称。字符串/sbin/init|grepinit显示了使用sysVinit而不是systemd的示例如果您在与上述相同的系统上查找systemd,您将一无所获。因此,您可以断定您正在运行sysVinit而不是systemd。示例2如果您在systemd系统中运行上述命令,您可以很容易地在输出的第一行看到systemd及其版本。字符串/sbin/init|grepsystemd使用systemd的示例example3显示它您还可以尝试使用pstree命令打印进程树,它应该显示第一个进程名称。它应该是systemd或init,如下例所示。pstreepstree显示使用systemdpstree显示使用init,这很好。这样你就可以很容易地找出你的发行版是否使用systemd或其他东西。