Hi,
On Mon, Nov 15, 2021 at 4:30 AM wrote:
> From: shenjiatong
>
> Add default recovery options for QGA on windows. Previously, QGA
> on windows will not try to restart service if it is down. This PS
> add some default options for the first, second and other failures,
> with an interval of 1min. Failure counter will reset after 1 day.
>
> Signed-off-by: shenjiatong
> ---
> qga/service-win32.c | 13 +
> 1 file changed, 13 insertions(+)
>
> diff --git a/qga/service-win32.c b/qga/service-win32.c
> index fd434e3f49..0fc93d38c3 100644
> --- a/qga/service-win32.c
> +++ b/qga/service-win32.c
> @@ -105,6 +105,18 @@ int ga_install_service(const char *path, const char
> *logfile,
> GString *esc;
> GString *cmdline;
> SERVICE_DESCRIPTION desc = { (char *)QGA_SERVICE_DESCRIPTION };
> +SC_ACTION sa[] = {
> +{ SC_ACTION_RESTART, 6},
> +{ SC_ACTION_RESTART, 6},
> +{ SC_ACTION_RESTART, 6}
> +};
> +SERVICE_FAILURE_ACTIONS sfa = {
> +864000, // in seconds,
>
864000 seconds is 10 days, not 1 day.
> +NULL,
> +NULL,
> +sizeof(sa) / sizeof(*sa),
> +sa
> +};
>
> if (GetModuleFileName(NULL, module_fname, MAX_PATH) == 0) {
> printf_win_error("No full path to service's executable");
> @@ -146,6 +158,7 @@ int ga_install_service(const char *path, const char
> *logfile,
> }
>
> ChangeServiceConfig2(service, SERVICE_CONFIG_DESCRIPTION, );
> +ChangeServiceConfig2(service, SERVICE_CONFIG_FAILURE_ACTIONS, );
> fprintf(stderr, "Service was installed successfully.\n");
> ret = EXIT_SUCCESS;
> CloseServiceHandle(service);
> --
> 2.25.1
>
>