systemd 命令行选项“--switched-root”和“--deserialize”是什么?

Mat*_*ine 17 linux systemd

ps在我的 Linux 机器上执行 a显示systemd使用命令行选项--switched-root--deserialize. 手册页中没有任何内容或/usr/share/doc/systemd提及它们,谷歌也没有太大帮助。那么,他们做什么呢?我猜这--switched-rootpivot_root 有关系,但这只是一个猜测。

Jde*_*eBP 20

这些是systemd有意未记录的内部部分。很简单,因此:

  • --deserialize用于恢复已保存的内部状态,该状态是先前调用systemdexec()ing 这个,已写出到文件。它的选项参数是该进程的打开文件描述符。
  • --switched-root用于告诉此调用systemd它已从systemd管理 initramfs 中调用,因此应采取相应的行为 - 包括关闭--deserialize.

  • 这是一个很好的答案。稍微扩展一下:使用 --deserialize --switched-root 运行的 systemd 本质上意味着 systemd 也用于 initramfs。现在这很常见,因此在 PID 1 的命令行中可以预期这两个选项。 (3认同)
  • @zbyszek 那么这里有什么意义呢?如果这是一个很好的答案,为什么那些公开暴露的“systemd”内部部分仍然没有出现在官方“systemd”文档中?难道你的解释不应该包含在官方的“systemd”文档中来向我们解释我们所看到的内容(“systemd-cgls | grep deserialize”)吗?已经2020年了!Google 和 SO 真的是唯一应该向像我们这样的未成年人解释“systemd”如此显着公开的内部部分的地方吗? (3认同)