mirror of
https://github.com/containers/podman.git
synced 2025-10-20 20:54:45 +08:00
If container is not in correct state podman exec should exit with 126
This way a tool can determine if the container exists or not, but is in the wrong state. Since 126 is documeted as: **_126_** if the **_contained command_** cannot be invoked It makes sense that the container would exit with this state. Signed-off-by: Daniel J Walsh <dwalsh@redhat.com> <Fixed conflicts> Signed-off-by: Matthew Heon <matthew.heon@pm.me>
This commit is contained in:

committed by
Matthew Heon

parent
96ccc2edf5
commit
a19975f96d
@ -109,5 +109,12 @@ func execCmd(c *cli.Context) error {
|
|||||||
envs = append(envs, fmt.Sprintf("%s=%s", k, v))
|
envs = append(envs, fmt.Sprintf("%s=%s", k, v))
|
||||||
}
|
}
|
||||||
|
|
||||||
return ctr.Exec(c.Bool("tty"), c.Bool("privileged"), envs, cmd, c.String("user"), c.String("workdir"))
|
if err := ctr.Exec(c.Bool("tty"), c.Bool("privileged"), envs, cmd, c.String("user"), c.String("workdir")); err != nil {
|
||||||
|
if errors.Cause(err) == libpod.ErrCtrStateInvalid {
|
||||||
|
exitCode = 126
|
||||||
|
}
|
||||||
|
return err
|
||||||
|
}
|
||||||
|
|
||||||
|
return nil
|
||||||
}
|
}
|
||||||
|
@ -285,7 +285,7 @@ func (c *Container) Exec(tty, privileged bool, env, cmd []string, user, workDir
|
|||||||
|
|
||||||
// TODO can probably relax this once we track exec sessions
|
// TODO can probably relax this once we track exec sessions
|
||||||
if conState != ContainerStateRunning {
|
if conState != ContainerStateRunning {
|
||||||
return errors.Errorf("cannot exec into container that is not running")
|
return errors.Wrapf(ErrCtrStateInvalid, "cannot exec into container that is not running")
|
||||||
}
|
}
|
||||||
if privileged || c.config.Privileged {
|
if privileged || c.config.Privileged {
|
||||||
capList = caps.GetAllCapabilities()
|
capList = caps.GetAllCapabilities()
|
||||||
|
Reference in New Issue
Block a user