小李同学 keep digging deeper
Ubuntu

如何判断操作系统使用的是 System V 初始化系统还是 Systemd 初始化系统

— 字

三种查法,从最直接的开始。

看 /sbin/init 指向哪里

ls -l /sbin/init
  • 指向 /lib/systemd/systemd,就是 Systemd;
  • 指向 /lib/sysvinit/init,就是 System V。

看 PID 1 是谁

ps -p 1 -o comm=
  • 输出 systemd:Systemd;
  • 输出 init:System V。

如果输出是 bash 之类,说明你当前环境的 1 号进程是 shell 而不是 init——典型场景是容器里。容器的 PID 1 是启动命令本身,这时两个方法都判断不出发行版用的哪套初始化系统,得上宿主机看。

看 systemd 的服务清单

systemctl list-unit-files | grep 'systemd'

能列出 xxx.service 这类条目,说明 Systemd 在跑。反过来说,这条命令本身能在 Systemd 以外的系统上直接报 command not found,也算是另一种判断方式。

本文作者 小李同学,转载请注明出处。

评论

还没有人留言。

写一条

提交后会先进站主的待审列表,通过之后才公开。

搜索文章

输入关键词搜索文章。