The Service Controller utility SC is a powerful command-line utility for managing Windows services. It modifies the value of a service's entries in the registry and in the Service Control Manager database. As a command-line utility, it is being avialable for scripts and enables the user to Create, Start or Stop or Delete windows services.
If you run the command sc
without any arguments, it will list down all the available commands/options with short a description of each command.
If you append a command name (without options), it will display help about that particular command.
You can use the following commands to Create, Start, Stop and Delete a service.
Create a Service
create
: Creates a service. (adds service to the registry).
sc.exe create <servicename> binpath= <binpath>
Where <servicename>
is the name of service and <binpath>
is the path to the service's exe file.
For example, this command will create a service from MyWorkerService.exe
.
sc.exe create MyWorkerService binpath= "C:\Apps\MyWorkerService.exe"
This will create a new service, but it will not be started automatically, if you want to auto start the service you can use the option start= auto
sc.exe create MyWorkerService binpath="C:\Apps\MyWorkerService.exe" start= auto
Auto
option enables the service to automatically start each time the computer is restarted and runs even if no one logs on to the computer.
Start a Service
start
: it will send a START request to the service.
sc.exe start "MyWorkerService"
Stop a Service
stop
: it will send a STOP request to the service.
sc.exe start "MyWorkerService"
Delete a Service
delete
: Deletes a service from SC Manager and (from the registry).
sc.exe delete "MyWorkerService"
A Note for .Net Core Worker Service
If you are deploying .Net Core Worker Service's exe, make sure to add these NuGet Packages before publishing.
- Install-Package Microsoft.Extensions.Hosting -Version 3.1.17
- Install-Package Microsoft.Extensions.Hosting.WindowsServices -Version 3.1.17
Version mentioned in above commands is compatible with .Net Core 3.1. If you are using some later version of .Net Core, you may need to change the version of these Nuget Packages.
References:
No comments:
Post a Comment