Persist pause state to disk to support container live restore

Signed-off-by: Lei Jitang <leijitang@huawei.com>
This commit is contained in:
Lei Jitang 2016-08-19 05:12:01 -04:00
parent 09e1de2080
commit f4bbfc34ce
2 changed files with 6 additions and 1 deletions

View File

@ -210,7 +210,6 @@ func (s *State) SetExitCode(ec int) {
func (s *State) SetRunning(pid int, initial bool) {
s.error = ""
s.Running = true
s.Paused = false
s.Restarting = false
s.exitCode = 0
s.Pid = pid

View File

@ -99,11 +99,17 @@ func (daemon *Daemon) StateChanged(id string, e libcontainerd.StateInfo) error {
case libcontainerd.StatePause:
// Container is already locked in this case
c.Paused = true
if err := c.ToDisk(); err != nil {
return err
}
daemon.updateHealthMonitor(c)
daemon.LogContainerEvent(c, "pause")
case libcontainerd.StateResume:
// Container is already locked in this case
c.Paused = false
if err := c.ToDisk(); err != nil {
return err
}
daemon.updateHealthMonitor(c)
daemon.LogContainerEvent(c, "unpause")
}