检查您是否在 Linux 中使用 Systemd
您的 Linux 系统是否使用 systemd 或 sysv 或其他 init 系统?以下是如何找出答案。
当您启动 Linux 系统时,它仅从一个进程启动,即一个名为 init 的程序。
自 UNIX 第五版(System V)推出以来,SysV init 系统一直是最受欢迎的,它于 1991 年引入 Linux 系统。
多年来它仍然是最流行的 init 系统,但逐渐地,许多 Linux 发行版开始使用 OpenRC、Runit、UpStart 等。
目前,systemd 被广泛使用,因此您很可能在您的系统上使用 systemd。
但如何确认呢?你运行这个命令:
ps -p 1 -o comm=
如果输出中出现 systemd,则表明您正在使用 systemd。
这适用于使用 systemd 的 Linux 发行版,但如果您使用其他 init 系统怎么办?我们也讨论一下这部分
检查Linux中的init系统
请记住,init 是 Linux 系统中启动的第一个进程。
这意味着细节在于PID为1的进程。然后检查进程1:
ps 1
但不幸的是,这还不够,因为该进程经常显示为 /sbin/init 并且不能提供准确的信息。
abhishek@LHB:~$ ps 1
PID TTY STAT TIME COMMAND
1 ? Ss 0:01 /sbin/init splash
/sbin/init 是实际 init 进程的符号链接。您可以按照符号链接查看实际过程。
我正在使用 stat 命令,您可以看到 /sbin/init 链接到 Ubuntu 中的 /lib/systemd/systemd。
abhishek@LHB:~$ stat /sbin/init
File: /sbin/init -> /lib/systemd/systemd
Size: 20 Blocks: 0 IO Block: 4096 symbolic link
Device: 10306h/66310d Inode: 30675721 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2022-09-21 09:17:59.616364311 +0530
Modify: 2022-06-27 23:58:46.000000000 +0530
Change: 2022-07-12 18:24:23.667196373 +0530
Birth: 2022-07-12 18:24:23.667196373 +0530
这表明 systemd 正在使用。
再举个例子。我使用的是 Alpine Linux 版本 3.16。这是初始化信息。
localhost:~# stat /sbin/init
File: '/sbin/init' -> '/bin/busybox'
Size: 12 Blocks: 0 IO Block: 4096 symbolic link
Device: 800h/2048d Inode: 169 Links: 1
Access: (0777/lrwxrwxrwx) Uid: ( 0/ root) Gid: ( 0/ root)
Access: 2022-09-22 04:53:46.677137693 +0000
Modify: 2022-07-21 04:10:19.149395174 +0000
Change: 2022-07-21 04:10:19.149395174 +0000
正如你所看到的,Alpine Linux 使用轻量级的 BusyBox init 系统。
您还可以使用 pstree 命令,但这可能不适用于其他所有发行版来识别 init 系统。
pstree
正如您所看到的进程树,它清楚地表明 Ubuntu 正在使用 systemd。
正如您所看到的,了解您的 Linux 系统是否使用 systemd 可能并不简单,但也没有那么复杂。