leafee98-blog/content/essays/rethinking-pid-1.md

24 lines
1 KiB
Markdown
Raw Permalink Normal View History

---
title: "Rethinking PID 1"
date: 2021-10-13T21:39:22+08:00
tags: []
categories: []
weight: 50
show_comments: true
draft: false
---
文章介绍了初始化进程(init)应该具有的特点, 同时介绍了几个初始化进程以及其优缺点.
一个好的初始化进程应该:
- 尽可能少启动程序(仅必要时再启动), 并且并行启动这些服务.
- 并行启动所有监听 socket , 即先放置 "placeholder" , 当 socket 真正得到需要处理的消息时再启动与之相对应的服务.
- 并行启动 D-Bus 服务, 与 socket 类似.
- 并行挂载文件系统, 即先放置虚假的目录, 当被读取时阻塞调用进程并真正挂载文件系统, 然后处理并返回调用结果.
- 降低初始化进程为系统带来的额外的开销.
- 跟踪进程, 借助 cgroup 来跟踪进程所 fork 的子进程, 并防止其逃离监视.
- 控制进程的运行环境, 借助 cgroup 来控制进程所获得的资源.
原文: [http://0pointer.de/blog/projects/systemd.html](http://0pointer.de/blog/projects/systemd.html)