Example #1
0
		status, err := process.Wait()
		if err != nil {
			exitError, ok := err.(*exec.ExitError)
			if ok {
				status = exitError.ProcessState
			} else {
				tty.Close()
				if created {
					container.Destroy()
				}
				fatal(err)
			}
		}

		if created {
			status, err := container.Status()
			if err != nil {
				tty.Close()
				fatal(err)
			}
			if status != libcontainer.Checkpointed {
				if err := container.Destroy(); err != nil {
					tty.Close()
					fatal(err)
				}
			}
		}

		tty.Close()
		os.Exit(utils.ExitStatus(status.Sys().(syscall.WaitStatus)))
	},