diff --git a/exec.go b/exec.go index f3a22e09..d9c34c06 100644 --- a/exec.go +++ b/exec.go @@ -9,6 +9,7 @@ import ( "strconv" "strings" + "github.com/opencontainers/runc/libcontainer" "github.com/opencontainers/runc/libcontainer/utils" "github.com/opencontainers/runtime-spec/specs-go" "github.com/urfave/cli" @@ -101,6 +102,13 @@ func execProcess(context *cli.Context) (int, error) { if err != nil { return -1, err } + status, err := container.Status() + if err != nil { + return -1, err + } + if status == libcontainer.Stopped { + return -1, fmt.Errorf("cannot exec a container that has run and stopped") + } path := context.String("process") if path == "" && len(context.Args()) == 1 { return -1, fmt.Errorf("process args cannot be empty")