24 lines
1 KiB
Markdown
24 lines
1 KiB
Markdown
|
---
|
||
|
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)
|