在不重启系统的情况下重启init

Seb*_*ebb 13 init

这个问题中,接受的答案指出

例如,/sbin/init 使用 glibc [易受攻击的库],并且在不重启的情况下重新启动它是非常重要的。

现在,非平凡是不可能的工程,但我仍然很好奇:

是否可以在不重新启动整个系统的情况下重新启动 init?

Ste*_*itt 16

telinit u
Run Code Online (Sandbox Code Playgroud)

将重新启动init而不影响系统的其余部分。

  • 我无法想象 sysv init 会调用 gethostbyname() 等,当然不会调用来自系统外部的数据,所以我不考虑在 Ghost 错误的上下文中优先重新启动 `init` . (5认同)
  • 这适用于 sysvinit 和 systemd(相当于`systemd daemon-reexec`)。 (5认同)
  • 这不适用于所有 Unix 变体上的所有 init 实现(AIX 上的 IIRC 你失业了),但据我所知,它确实适用于可能与 glibc 链接的所有 init 实现。 (2认同)