package nsinit import ( "log" "github.com/codegangsta/cli" "github.com/docker/libcontainer/namespaces" ) var nsenterCommand = cli.Command{ Name: "nsenter", Usage: "init process for entering an existing namespace", Action: nsenterAction, Flags: []cli.Flag{ cli.IntFlag{Name: "nspid"}, cli.StringFlag{Name: "containerjson"}, cli.StringFlag{Name: "console"}, }, } func nsenterAction(context *cli.Context) { args := context.Args() if len(args) == 0 { args = []string{"/bin/bash"} } container, err := loadContainerFromJson(context.String("containerjson")) if err != nil { log.Fatalf("unable to load container: %s", err) } nspid := context.Int("nspid") if nspid <= 0 { log.Fatalf("cannot enter into namespaces without valid pid: %q", nspid) } if err := namespaces.NsEnter(container, args); err != nil { log.Fatalf("failed to nsenter: %s", err) } }