#!/usr/bin/env python import libvirt import threading import time eventLoopThread = None def eventLoopRun(): while True: libvirt.virEventRunDefaultImpl() def eventLoopStart(): global eventLoopThread libvirt.virEventRegisterDefaultImpl() eventLoopThread = threading.Thread(target=eventLoopRun, name="libvirtEventLoop") eventLoopThread.setDaemon(True) eventLoopThread.start() def reportDefault(conn, dom, event,opaque): print "DEFAULT EVENT: Domain %s(%s), pass the default event:%s" % (dom.name(), dom.ID(), event) def main(): eventLoopStart() conn = libvirt.openReadOnly('qemu:///system') conn.domainEventRegisterAny(None, libvirt.VIR_DOMAIN_EVENT_ID_DEFAULT, reportDefault, None) while 1: time.sleep(1) if __name__ == "__main__": main()