MCPcopy
hub / github.com/opencontainers/runc / newInitProcess

Method newInitProcess

libcontainer/container_linux.go:625–652  ·  view source on GitHub ↗
(p *Process, cmd *exec.Cmd, comm *processComm)

Source from the content-addressed store, hash-verified

623}
624
625func (c *Container) newInitProcess(p *Process, cmd *exec.Cmd, comm *processComm) (*initProcess, error) {
626 cmd.Env = append(cmd.Env, "_LIBCONTAINER_INITTYPE="+string(initStandard))
627 nsMaps := make(map[configs.NamespaceType]string)
628 for _, ns := range c.config.Namespaces {
629 if ns.Path != "" {
630 nsMaps[ns.Type] = ns.Path
631 }
632 }
633 data, err := c.bootstrapData(c.config.Namespaces.CloneFlags(), nsMaps)
634 if err != nil {
635 return nil, err
636 }
637
638 init := &initProcess{
639 containerProcess: containerProcess{
640 cmd: cmd,
641 comm: comm,
642 manager: c.cgroupManager,
643 config: c.newInitConfig(p),
644 process: p,
645 bootstrapData: data,
646 container: c,
647 },
648 intelRdtManager: c.intelRdtManager,
649 }
650 c.initProcess = init
651 return init, nil
652}
653
654func (c *Container) newSetnsProcess(p *Process, cmd *exec.Cmd, comm *processComm) (*setnsProcess, error) {
655 cmd.Env = append(cmd.Env, "_LIBCONTAINER_INITTYPE="+string(initSetns))

Callers 1

newParentProcessMethod · 0.95

Calls 3

bootstrapDataMethod · 0.95
newInitConfigMethod · 0.95
CloneFlagsMethod · 0.45

Tested by

no test coverage detected