Feature Requests item #3588884, was opened at 2012-11-21 01:34
Message generated for change (Comment added) made by rupole
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=551957&aid=3588884&group_id=78018
Please note that this message will contain a full copy of the comment thread,
including the initial issue submission, for this request,
not just the latest update.
Category: win32
Group: None
Status: Open
Resolution: None
Priority: 5
Private: No
Submitted By: Dieter G (dgovaerts)
Assigned to: Nobody/Anonymous (nobody)
Summary: Add support for service recovery
Initial Comment:
Currently there seems to be no way to use the automatic service recovery options provided by the service manager in case of a failure in the service. According to http://msdn.microsoft.com/en-us/library/ms685939%28VS.85%29.aspx , a service is considered failed if it didn't report a status of SERVICE_STOPPED before terminating.
When using the win32serviceutil.ServiceFramework the SERVICE_STOPPED status is always reported to the service manager (at the end of the service_main() function in PythonService.cpp) and there is no way to prevent this. One way to support this is by checking for a SystemExit exception with a code != 0 when returning from the "SvcRun" method in the service_main() function and not report the SERVICE_STOPPED status in that case. One can thus trigger the recovery by calling "exit(1)".
----------------------------------------------------------------------
>Comment By: Roger Upole (rupole)
Date: 2012-11-22 19:28
Message:
Given that there's a difference between how a crash and a reported win32
error is handled, it might be better to not set SERVICE_STOPPED when an
unhandled python exception occurs. That way it can be treated as a crash.
Otherwise, if the service method returns an error code, still set
SERVICE_STOPPED and report the error using ERROR_SERVICE_SPECIFIC_ERROR.
----------------------------------------------------------------------
You can respond by visiting:
https://sourceforge.net/tracker/?func=detail&atid=551957&aid=3588884&group_id=78018
|