美文网首页
容器中存在多个进程,主进程挂了会怎么样?

容器中存在多个进程,主进程挂了会怎么样?

作者: Dakini_Wind | 来源:发表于2022-08-21 21:04 被阅读0次

问题:

  1. 假设redis在容器里运行,redis在执行rdb备份的时候,也会fork出一个进程

  2. 这时候要是主进程挂掉,这个子进程会成为子进程吗?

疑问:

理解 Pod 和容器设计模式中看到描述说:

把这个 PID=1 的进程给 kill 了,或者它自己运行过程中死掉了,那么剩下三个进程的资源就没有人回收了

这样,存在子进程的应用的容器岂不是都有bug?

解答:

来自:linux - What happens to other processes when a Docker container's PID1 exits? - Stack Overflow

意思大概是:

  1. 通过CLONE_NEWPID在新的命名空间中创建第一个进程,该进程具有PID=1,这个进程是命名空间的“init”进程;
  2. 在命名空间中的孤儿进程(别的进程异常退出产生的)将重新成为该命名空间“init”进程的子进程,而不是 init(8)的子进程;
  3. 与传统的 init 进程不同,PID 命名空间的“init”进程可以终止,如果终止,则命名空间中的所有进程都将终止。

相关文章

  • 容器中存在多个进程,主进程挂了会怎么样?

    问题: 假设redis在容器里运行,redis在执行rdb备份的时候,也会fork出一个进程 这时候要是主进程挂掉...

  • A

    进程 线程 一个进程可以包含多个线程 一个进程的多个线程,其中一个线程挂了,其他的线程也会挂

  • 并发编程的理论基石

    一、进程和线程 1.操作系统、进程、线程的关系 操作系统是包含多个进程的容器,而每个进程又是容纳多个线程的容器。 ...

  • 并发--基本概念

    一、基本概念 1、进程与线程 进程: 资源分配的最小单位。进程是线程的容器, 一个进程中包含多个线程, 真正执行任...

  • PHP 多进程

    简单的父子进程 循环内父子进程 多个进程复用一个链接 多个进程复用一个链接会导致判断错误,此处就判断存在的 3 居...

  • 一种基于 rxjs 和 @ngrx/store 的 Electr

    ActionScope 设计 Electron 中分主进程M、主渲染进程C、其它渲染进程R,一般渲染进程有多个,主...

  • 第七章 Docker---容器的命令详解

    1. Docker容器的特殊规则: 一个容器可以运行多个进程,但是必须有一个超管进程(init),对容器内的进程进...

  • docker容易运行多个服务

    1)容器中运行多个守护进程时,前面的进程要用后台方式运行(或添加 &),否则后面的服务无法启动 2)容器中最后一个...

  • Java多线程及线程同步原理

    进程和线程 操作系统中运行多个软件,一个运行中的软件可能包含多个进程,一个运行中的进程可能包含多个线程。 进程 ...

  • 通过用户态协议栈来实现容器跨主机热迁移中的网络部分

    容器,其实是一个或多个受到相同限制的进程。因此,进程的热迁移工具也适用于容器。 进程如何热迁移?请百度CRIU。网...

网友评论

      本文标题:容器中存在多个进程,主进程挂了会怎么样?

      本文链接:https://www.haomeiwen.com/subject/intwgrtx.html