diff options
author | Matthew Heon <matthew.heon@gmail.com> | 2018-03-13 11:49:24 -0400 |
---|---|---|
committer | Atomic Bot <atomic-devel@projectatomic.io> | 2018-03-15 17:45:11 +0000 |
commit | 02a26c2934eea13799ae950827df54ec995312bc (patch) | |
tree | 6b98d4cb0ef0668c03b6ec2b78b45b771c7a81d7 /cmd/podman/start.go | |
parent | ff091cf731cb28e5d38ff843781115d352ea1530 (diff) | |
download | podman-02a26c2934eea13799ae950827df54ec995312bc.tar.gz podman-02a26c2934eea13799ae950827df54ec995312bc.tar.bz2 podman-02a26c2934eea13799ae950827df54ec995312bc.zip |
Implement container restarting
Signed-off-by: Matthew Heon <matthew.heon@gmail.com>
Closes: #482
Approved by: baude
Diffstat (limited to 'cmd/podman/start.go')
-rw-r--r-- | cmd/podman/start.go | 24 |
1 files changed, 15 insertions, 9 deletions
diff --git a/cmd/podman/start.go b/cmd/podman/start.go index 18e8f7766..243fe71e2 100644 --- a/cmd/podman/start.go +++ b/cmd/podman/start.go @@ -104,8 +104,18 @@ func startCmd(c *cli.Context) error { if err != nil { return errors.Wrapf(err, "unable to parse annotations in %s", ctr.ID()) } + err = ctr.Start() + if err != nil { + if lastError != nil { + fmt.Fprintln(os.Stderr, lastError) + } + lastError = errors.Wrapf(err, "unable to start %s", container) + continue + } // We only get a terminal session if both a tty was specified in the spec and // -a on the command-line was given. + // Must be done after Start() because we might be restarting + // If so, the attach socket might be removed & recreated if attach && tty { // We increment the wg counter because we need to do the attach wg.Add(1) @@ -121,14 +131,6 @@ func startCmd(c *cli.Context) error { return errors.Errorf("unable to attach to container %s", ctr.ID()) } } - err = ctr.Start() - if err != nil { - if lastError != nil { - fmt.Fprintln(os.Stderr, lastError) - } - lastError = errors.Wrapf(err, "unable to start %s", container) - continue - } if !attach { fmt.Println(ctr.ID()) } @@ -141,7 +143,11 @@ func startCmd(c *cli.Context) error { if lastError != nil { fmt.Fprintln(os.Stderr, lastError) } - lastError = ctr.Cleanup() + // We can only do this if we attached + // Otherwise the container is probably still running + if attach && tty { + lastError = ctr.Cleanup() + } } return lastError } |