Status: Pull request
Affects Version/s: None
Fix Version/s: None
Component/s: GPII Framework
Our current usage of the RestartManager API doesn't have several guarantees that we expected from it, mainly this is caused because we expected things that this API really doesn't offer, and it's documentation doesn't state clearly this flaws.
We had several goals for this API:
- Being able to nicely restart a critical system service.
- Being able to restart any application that is registered as 'restartable'.
- Ensure that services are up again after the restarting is requested.
It looks like, the last point of this requirements is not fulfilled by this API. In the case of Windows Explorer restarting we observed that in fact, if something goes wrong during the shutdown, for example, an associated service is not able to being restarted, the target service is not restarted by the API and the whole operation fails.
- Identify the different failures the RestartManager API could have during a operation request.
- Implement the required functionality to ensure that services are restarted if calling the RestartManager fails doing so, and properly log the reason the operation couldn't be completed.
- Research if administrative privileges has something to do with the fact of certain services being able to be restarted in certain conditions.