summaryrefslogtreecommitdiffstats
path: root/scripts
diff options
context:
space:
mode:
Diffstat (limited to 'scripts')
-rwxr-xr-xscripts/runqemu14
1 files changed, 11 insertions, 3 deletions
diff --git a/scripts/runqemu b/scripts/runqemu
index cb36c2007b..bd3aee0c2f 100755
--- a/scripts/runqemu
+++ b/scripts/runqemu
@@ -1199,6 +1199,7 @@ class BaseConfig(object):
1199 self.qemu_opt += " -serial mon:vc -serial null" 1199 self.qemu_opt += " -serial mon:vc -serial null"
1200 1200
1201 def start_qemu(self): 1201 def start_qemu(self):
1202 import shlex
1202 if self.kernel: 1203 if self.kernel:
1203 kernel_opts = "-kernel %s -append '%s %s %s %s'" % (self.kernel, self.kernel_cmdline, 1204 kernel_opts = "-kernel %s -append '%s %s %s %s'" % (self.kernel, self.kernel_cmdline,
1204 self.kernel_cmdline_script, self.get('QB_KERNEL_CMDLINE_APPEND'), 1205 self.kernel_cmdline_script, self.get('QB_KERNEL_CMDLINE_APPEND'),
@@ -1208,11 +1209,16 @@ class BaseConfig(object):
1208 else: 1209 else:
1209 kernel_opts = "" 1210 kernel_opts = ""
1210 cmd = "%s %s" % (self.qemu_opt, kernel_opts) 1211 cmd = "%s %s" % (self.qemu_opt, kernel_opts)
1212 cmds = shlex.split(cmd)
1211 logger.info('Running %s\n' % cmd) 1213 logger.info('Running %s\n' % cmd)
1212 process = subprocess.Popen(cmd, shell=True, stderr=subprocess.PIPE) 1214 process = subprocess.Popen(cmds, stderr=subprocess.PIPE)
1213 self.qemupid = process.pid 1215 self.qemupid = process.pid
1214 if process.wait(): 1216 retcode = process.wait()
1215 logger.error("Failed to run qemu: %s", process.stderr.read().decode()) 1217 if retcode:
1218 if retcode == -signal.SIGTERM:
1219 logger.info("Qemu terminated by SIGTERM")
1220 else:
1221 logger.error("Failed to run qemu: %s", process.stderr.read().decode())
1216 1222
1217 def cleanup(self): 1223 def cleanup(self):
1218 if self.cleaned: 1224 if self.cleaned:
@@ -1307,6 +1313,7 @@ def main():
1307 logger.info("SIGTERM received") 1313 logger.info("SIGTERM received")
1308 os.kill(config.qemupid, signal.SIGTERM) 1314 os.kill(config.qemupid, signal.SIGTERM)
1309 config.cleanup() 1315 config.cleanup()
1316 subprocess.run(["tput", "smam"])
1310 signal.signal(signal.SIGTERM, sigterm_handler) 1317 signal.signal(signal.SIGTERM, sigterm_handler)
1311 1318
1312 config.check_args() 1319 config.check_args()
@@ -1328,6 +1335,7 @@ def main():
1328 return 1 1335 return 1
1329 finally: 1336 finally:
1330 config.cleanup() 1337 config.cleanup()
1338 subprocess.run(["tput", "smam"])
1331 1339
1332if __name__ == "__main__": 1340if __name__ == "__main__":
1333 sys.exit(main()) 1341 sys.exit(main())