容器中的 0 号进程和 1 号进程
驳斥《把数据库放入Docker是一个好主意吗?》埋了一个坑,就是需要讲一讲用了容器技术和不用容器技术,运行一组进程到底有什么区别。
Linux 内核
那就让我回顾一下 Linux 内核的各个子系统吧,我们先从最右边的进程管理子系统说起。今天的话题就是容器中的0 号和 1 号进程。
Linux 0/进程大家都知道对 Linux 系统来说 1 号进程为 init 进程,是由 0 号进程(内核进程)通过调用系统 init 函数创建的第一个用户进程 1 进程,主要做用户态进程的管理,垃圾回收等动作。
0 号进程0 号进程,通常也被称为 idle 进程,或者也称为 swapper 进程。0 号进程是 Linux 启动的第一个进程,它的 task_struct 的 comm 字段为 “swapper”,所以也称为 swpper 进程。当系统中所有的进程起来后,0 号进程也就蜕化为 idle 进程,当一个 core 上没有任务可运行时就会去运行 idle 进程。
1 号进程我们通常将 init 称为 1 号进程,Systemd 是目前使用最广泛的 init 进程,它会作为 1 号进程出现在 ...