It’s dead simple to restart a Windows service in C#. I’m a little shocked at how easy it is actually, given some of the other things I’ve found to be so ugly about the language.
public void RestartService(string name) { ServiceController service = new ServiceController(name); service.Stop(); Thread.Sleep(2500); service.Start(); Thread.Sleep(2500); }
You guessed it: “name” is the name of the service to restart. It must exactly match the actual service name or bad things will happen. I added the sleeps for good measure. They may or may not be needed depending on how responsive you want the service to be immediately after restarting.
Now if only C# made it this easy to restart a UNIX process…