ServiceController.Status Property


The .NET API Reference documentation has a new home. Visit the .NET API Browser on to see the new experience.

Gets the status of the service that is referenced by this instance.

Namespace:   System.ServiceProcess
Assembly:  System.ServiceProcess (in System.ServiceProcess.dll)

public ServiceControllerStatus Status { get; }

Property Value

Type: System.ServiceProcess.ServiceControllerStatus

One of the ServiceControllerStatus values that indicates whether the service is running, stopped, or paused, or whether a start, stop, pause, or continue command is pending.

Exception Condition

An error occurred when accessing a system API.


The service was not found.

The status indicates the current state of the service. The set of possible values includes several that indicate whether a state-changing command is pending.

The following example uses the ServiceController class to check the current status of the Telnet service. If the service is stopped, the example starts the service. If the service is running, the example stops the service.

// Toggle the Telnet service - 
// If it is started (running, paused, etc), stop the service.
// If it is stopped, start the service.
ServiceController sc = new ServiceController("Telnet");
Console.WriteLine("The Telnet service status is currently set to {0}", 

if  ((sc.Status.Equals(ServiceControllerStatus.Stopped)) ||
   // Start the service if the current status is stopped.

   Console.WriteLine("Starting the Telnet service...");
   // Stop the service if its status is not set to "Stopped".

   Console.WriteLine("Stopping the Telnet service...");

// Refresh and display the current service status.
Console.WriteLine("The Telnet service status is now set to {0}.", 

.NET Framework
Available since 1.1
Return to top