docker: Terminate instances at SIGTERM and SIGHUP

Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <1474429768-25027-9-git-send-email-famz@redhat.com>
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
This commit is contained in:
Fam Zheng 2016-09-21 11:49:27 +08:00
parent ec960b9a73
commit 97cba1a1d1
1 changed files with 4 additions and 1 deletions

View File

@ -21,6 +21,7 @@ import uuid
import argparse import argparse
import tempfile import tempfile
import re import re
import signal
from tarfile import TarFile, TarInfo from tarfile import TarFile, TarInfo
from StringIO import StringIO from StringIO import StringIO
from shutil import copy, rmtree from shutil import copy, rmtree
@ -101,6 +102,8 @@ class Docker(object):
self._command = _guess_docker_command() self._command = _guess_docker_command()
self._instances = [] self._instances = []
atexit.register(self._kill_instances) atexit.register(self._kill_instances)
signal.signal(signal.SIGTERM, self._kill_instances)
signal.signal(signal.SIGHUP, self._kill_instances)
def _do(self, cmd, quiet=True, infile=None, **kwargs): def _do(self, cmd, quiet=True, infile=None, **kwargs):
if quiet: if quiet:
@ -133,7 +136,7 @@ class Docker(object):
self._do_kill_instances(False, False) self._do_kill_instances(False, False)
return 0 return 0
def _kill_instances(self): def _kill_instances(self, *args, **kwargs):
return self._do_kill_instances(True) return self._do_kill_instances(True)
def _output(self, cmd, **kwargs): def _output(self, cmd, **kwargs):