Leafee98's Blog

Rethinking PID 1

· 268 words · 1 minutes to read

文章介绍了初始化进程(init)应该具有的特点, 同时介绍了几个初始化进程以及其优缺点.

一个好的初始化进程应该:

  • 尽可能少启动程序(仅必要时再启动), 并且并行启动这些服务.
  • 并行启动所有监听 socket , 即先放置 “placeholder” , 当 socket 真正得到需要处理的消息时再启动与之相对应的服务.
  • 并行启动 D-Bus 服务, 与 socket 类似.
  • 并行挂载文件系统, 即先放置虚假的目录, 当被读取时阻塞调用进程并真正挂载文件系统, 然后处理并返回调用结果.
  • 降低初始化进程为系统带来的额外的开销.
  • 跟踪进程, 借助 cgroup 来跟踪进程所 fork 的子进程, 并防止其逃离监视.
  • 控制进程的运行环境, 借助 cgroup 来控制进程所获得的资源.

原文: http://0pointer.de/blog/projects/systemd.html