为什么pstree命令在Ubuntu 16.04 LTS中没有显示init?

我试图检查pstree命令的输出。 但由于某种原因,它始终从称为systemd东西开始,而不是它是init。 我已经检查过使用ps aux命令查看init和systemd的进程ID,并且init的PID为1,而systemd有其他PID。 那么为什么不在我的pstree输出中显示init? 我需要提供一个选项吗?

我也读过关于systemd vs init争议的内容,但是ubuntu 16.04 LTS仍然使用init来启动一切正确吗?

更新为什么不同的PID?

事实certificate,我认为不同的PID是我无知的一部分。 init有一个PID 1,而systemd不是我所说的。 相反,当我运行ps aux|grep systemd ,我找到了/lib/systemd/systemd-* PID,其中*表示一些额外的字符。 所以我所说的不是systemd,而是其他一些系统的扩展(是正确的单词吗?)。

*一些示例如下

 /lib/systemd/systemd-journald /lib/systemd/systemd-udevd /lib/systemd/systemd-timesyncd 

从15.04开始,Ubuntu上的init是systemd。 可以使用Upstart ,但默认为systemd。 例如, /sbin/init将是/lib/systemd/systemd的链接。 /sbin/{shutdown,reboot,telinit,halt,runlevel,poweroff}/sbin/systemctl链接。 即使在16.04,Upstart也被用作会话初始化 ,因此您可能会将Upstart视为父进程或图形登录中的祖先进程(尽管它在16.10中似乎已更改 )。

您看到的其他进程是systemd组件; 它们与systemd一起开发和分发,但许多并不是将systemd作为init运行所必需的。 可以替换或禁用许多组件。 引用systemd主页 :

systemd是Linux系统的一套基本构建块。 它提供了一个系统和服务管理器,它以PID 1运行并启动系统的其余部分。 …其他部分包括日志记录守护程序,用于控制基本系统配置的实用程序,如主机名,日期,区域设置,维护登录用户列表以及运行容器和虚拟机,系统帐户,运行时目录和设置以及守护程序管理简单的网络配置,网络时间同步,日志转发和名称解析。

这篇博文来自systemd(Lennart Poettering)的创作者之一:

  1. 误区:systemd不允许您更换其组件。

    不是这样,你可以关闭并替换systemd的任何部分,只有极少数例外。 而那些例外(例如journald)通常允许你并排运行另一个例子,同时与之合作得很好。