summaryrefslogtreecommitdiffhomepage
path: root/runsc/container/container.go
diff options
context:
space:
mode:
Diffstat (limited to 'runsc/container/container.go')
-rw-r--r--runsc/container/container.go9
1 files changed, 9 insertions, 0 deletions
diff --git a/runsc/container/container.go b/runsc/container/container.go
index 30323138a..c4e5bf9f6 100644
--- a/runsc/container/container.go
+++ b/runsc/container/container.go
@@ -352,6 +352,9 @@ func (c *Container) Pid() int {
// Wait waits for the container to exit, and returns its WaitStatus.
func (c *Container) Wait() (syscall.WaitStatus, error) {
log.Debugf("Wait on container %q", c.ID)
+ if c.Status == Stopped {
+ return 0, fmt.Errorf("container is stopped")
+ }
return c.Sandbox.Wait(c.ID)
}
@@ -359,6 +362,9 @@ func (c *Container) Wait() (syscall.WaitStatus, error) {
// returns its WaitStatus.
func (c *Container) WaitRootPID(pid int32) (syscall.WaitStatus, error) {
log.Debugf("Wait on pid %d in sandbox %q", pid, c.Sandbox.ID)
+ if c.Status == Stopped {
+ return 0, fmt.Errorf("container is stopped")
+ }
return c.Sandbox.WaitPID(pid, c.Sandbox.ID)
}
@@ -366,6 +372,9 @@ func (c *Container) WaitRootPID(pid int32) (syscall.WaitStatus, error) {
// its WaitStatus.
func (c *Container) WaitPID(pid int32) (syscall.WaitStatus, error) {
log.Debugf("Wait on pid %d in container %q", pid, c.ID)
+ if c.Status == Stopped {
+ return 0, fmt.Errorf("container is stopped")
+ }
return c.Sandbox.WaitPID(pid, c.ID)
}