launcher

Launcher

Launcher负责fork/destroy容器

  • 在容器化的上下文fork一个新的进程。子进程将使用指定参数、标志、环境变量执行指定路径的二进制。
  • 子进程的I/O将根据特定的I/O描述符重定向

支持的launchers

  • posix
  • linux
  • systemd(未来将支持)

Linux Lanucher

  • 为容器创建一个"freezer"的cgroup
  • 创建posix管道以在主机进程与容器进程间通信
  • 使用clone系统调用生成子进程(容器进程)
  • 将新的容器进程移到freezer层次中
  • 在父进程写一个字符表示管理结束来通知子进程继续执行

linux_launcher

src/slave/containerizer/mesos/linux_launcher.cpp

LinuxLauncher::create

参数:

  • flags:命令行参数

流程:

  • 79-101:创建cgroups
  • 111-117:返回新的LinuxLauncher对象

LinuxLauncher::fork

参数:

  • containerId
  • path
  • argv
  • in
  • out
  • err
  • flags
  • environment
  • namespaces
  • parentHooks

流程:

  • 278-282:CLONE标志
  • 289-298:cgroups相关动作
  • 300-310:调用subprocess,见libprocess
  • 返回子进程pid

results matching ""

    No results matching ""