mirror of https://gitee.com/openkylin/qemu.git
python/qemu/machine: add kill() method
Add method to hard-kill vm, without any quit commands. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Reviewed-by: Andrey Shinkevich <andrey.shinkevich@virtuozzo.com> Message-Id: <20200217150246.29180-19-vsementsov@virtuozzo.com> Signed-off-by: Philippe Mathieu-Daudé <philmd@redhat.com>
This commit is contained in:
parent
2d110c1149
commit
e0e925a611
|
@ -342,7 +342,7 @@ def wait(self):
|
||||||
self._load_io_log()
|
self._load_io_log()
|
||||||
self._post_shutdown()
|
self._post_shutdown()
|
||||||
|
|
||||||
def shutdown(self, has_quit=False):
|
def shutdown(self, has_quit=False, hard=False):
|
||||||
"""
|
"""
|
||||||
Terminate the VM and clean up
|
Terminate the VM and clean up
|
||||||
"""
|
"""
|
||||||
|
@ -354,7 +354,9 @@ def shutdown(self, has_quit=False):
|
||||||
self._console_socket = None
|
self._console_socket = None
|
||||||
|
|
||||||
if self.is_running():
|
if self.is_running():
|
||||||
if self._qmp:
|
if hard:
|
||||||
|
self._popen.kill()
|
||||||
|
elif self._qmp:
|
||||||
try:
|
try:
|
||||||
if not has_quit:
|
if not has_quit:
|
||||||
self._qmp.cmd('quit')
|
self._qmp.cmd('quit')
|
||||||
|
@ -368,7 +370,8 @@ def shutdown(self, has_quit=False):
|
||||||
self._post_shutdown()
|
self._post_shutdown()
|
||||||
|
|
||||||
exitcode = self.exitcode()
|
exitcode = self.exitcode()
|
||||||
if exitcode is not None and exitcode < 0:
|
if exitcode is not None and exitcode < 0 and \
|
||||||
|
not (exitcode == -9 and hard):
|
||||||
msg = 'qemu received signal %i: %s'
|
msg = 'qemu received signal %i: %s'
|
||||||
if self._qemu_full_args:
|
if self._qemu_full_args:
|
||||||
command = ' '.join(self._qemu_full_args)
|
command = ' '.join(self._qemu_full_args)
|
||||||
|
@ -378,6 +381,9 @@ def shutdown(self, has_quit=False):
|
||||||
|
|
||||||
self._launched = False
|
self._launched = False
|
||||||
|
|
||||||
|
def kill(self):
|
||||||
|
self.shutdown(hard=True)
|
||||||
|
|
||||||
def set_qmp_monitor(self, enabled=True):
|
def set_qmp_monitor(self, enabled=True):
|
||||||
"""
|
"""
|
||||||
Set the QMP monitor.
|
Set the QMP monitor.
|
||||||
|
|
Loading…
Reference in New Issue