qemu-ga: add Windows service integration

This allows qemu-ga to function as a Windows service:

 - to install the service (will auto-start on boot):
     qemu-ga --service install
 - to start the service:
     net start qemu-ga
 - to stop the service:
     net stop qemu-ga
 - to uninstall service:
     qemu-ga --service uninstall

Original patch by Gal Hammer <ghammer@redhat.com>
This commit is contained in:
Michael Roth 2012-01-21 16:42:27 -06:00
parent 7868e26e59
commit bc62fa039c
4 changed files with 249 additions and 10 deletions

30
qga/service-win32.h Normal file
View file

@ -0,0 +1,30 @@
/*
* QEMU Guest Agent helpers for win32 service management
*
* Copyright IBM Corp. 2012
*
* Authors:
* Gal Hammer <ghammer@redhat.com>
* Michael Roth <mdroth@linux.vnet.ibm.com>
*
* This work is licensed under the terms of the GNU GPL, version 2 or later.
* See the COPYING file in the top-level directory.
*/
#ifndef QGA_SERVICE_H
#define QGA_SERVICE_H
#include <windows.h>
#define QGA_SERVICE_DISPLAY_NAME "QEMU Guest Agent"
#define QGA_SERVICE_NAME "qemu-ga"
#define QGA_SERVICE_DESCRIPTION "Enables integration with QEMU machine emulator and virtualizer."
typedef struct GAService {
SERVICE_STATUS status;
SERVICE_STATUS_HANDLE status_handle;
} GAService;
int ga_install_service(const char *path, const char *logfile);
int ga_uninstall_service(void);
#endif