protected bool RestartService()
{
try
{
if (string.IsNullOrEmpty(ServiceName)) { return false; }
LogProvider.WarnFormat("Attempting to restart service '{0}'.", Name);
ServiceController serviceController;
if (!string.IsNullOrEmpty(ServiceMachineName))
serviceController = new ServiceController(
ServiceName, ServiceMachineName);
else
serviceController = new ServiceController(ServiceName);
if (serviceController.Status != ServiceControllerStatus.Stopped)
{
serviceController.Stop();
serviceController.WaitForStatus(ServiceControllerStatus.Stopped);
}
if (serviceController.Status == ServiceControllerStatus.Stopped)
{
serviceController.Start();
}
while (serviceController.Status != ServiceControllerStatus.Running)
{
serviceController.WaitForStatus(ServiceControllerStatus.Running);
}
LogProvider.WarnFormat("Restarted service '{0}'.", Name);
return true;
}
catch (Exception ex)
{
LogProvider.FatalFormat("Failed to restart service '{0}'.", ex, Name);
return false;
}
}