#!/usr/bin/python import os import socket import tempfile import subprocess from time import sleep sock_path = tempfile.mktemp() print "Spawning qemu" print qemu = subprocess.Popen(["/usr/bin/qemu", "-chardev", "socket,id=mon0,path=%s,server,nowait" % sock_path, "-mon", "chardev=mon0,mode=control", "-display", "none"]) # Wait for qemu to initialize while not os.path.exists(sock_path): sleep(0.1) print "Connecting client 1\n" cl1 = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) cl1.connect(sock_path) print "Monitor output:" print cl1.recv(1024) print print "Connecting client 2\n" cl2 = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) cl2.settimeout(1) try: cl2.connect(sock_path) print "Monitor output:" print cl2.recv(1024) except socket.timeout: print "(timeout, disconnecting)\n" cl2.close() print "Disconnecting client 1\n" cl1.close() print "Connecting client 3\n" cl3 = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM) cl3.connect(sock_path) print "Monitor output" print cl3.recv(1024) cl3.close() print "Terminating qemu" qemu.terminate() qemu.wait()