Take the 2-minute tour ×
Server Fault is a question and answer site for professional system and network administrators. It's 100% free, no registration required.

I have a Python web application running in a CherryPy server, which is running as a windows service. I have a batch file to deploy this application, but I'm still having to remote desktop in to the server to restart the service. Is there any way to script this?

I tried:

psexec \\server "net restart cherrypyservice"

But this doesn't seem to work.

share|improve this question
    
there is no "net restart" command.. you would have to do a "net stop" and then a "net start" if you wanted to use psexec and the built-in net command or use the psservice that is also part of sysinternals suite that others have already mentioned below –  Rex Aug 25 '10 at 14:41

9 Answers 9

psservice \\server restart cherrypyservice

(Where psservice is another SysInternals app)

or

sc \\server stop cherrypyservice
sc \\server start cherrypyservice
share|improve this answer

(gwmi win32_service -computer $comp -Filter "name='$serviceName'").StopService() (gwmi win32_service -computer $comp -Filter "name='$serviceName'").StartService()

Hello

Using the above command, is there a way where I can restart a service and its dependencies. How do I force it to do so, Is there a force command?

I know there is -f in psservice but I cannot figure it out here

share|improve this answer

Using the WMI method

(Get-WmiObject win32_service -computer stp7cor1737ltv4 -filter "Name='SPtimerv3'").invokemethod("StartService",$null)

share|improve this answer

Using Russinovich's psservice:

 psservice \\server restart cherrypyservice
share|improve this answer

If you want to use psexec:

psexec \\Server cmd "/c net stop servicename"
psexec \\Server cmd "/c net start servicename"

Though in this case, sc is recommended. It does everything you need if you're going to shell out.

share|improve this answer

Using PowerShell Interactively (localy):

get-service $servicename  | restart-service

Using PowerShell Interactively (remotely):

(gwmi win32_service -computer $comp -Filter "name='$serviceName'").StopService()
(gwmi win32_service -computer $comp -Filter "name='$serviceName'").StartService()

In a function (remotely):

function restart-remoteservice{
     param($servicename,$computer)
     (gwmi win32_service -computer $computer -Filter "name='$serviceName'").StopService()
     (gwmi win32_service -computer $computer -Filter "name='$serviceName'").StartService()
}
share|improve this answer
net stop cherrypyservice
net start cherrypyservice

with whatever remote execution engine you prefer.

share|improve this answer

you could use the sc command-line tool but i don't know how to do it specifically in python.

http://stackoverflow.com/questions/133883/stop-and-start-a-service-via-batch-or-cmd-file/133926#133926

DESCRIPTION: SC is a command line program used for communicating with the NT Service Controller and services. USAGE: sc [command] [service name] ...

  The option  has the form "\\ServerName"
  Further help on commands can be obtained by typing: "sc [command]"
  Commands:
    query-----------Queries the status for a service, or
                    enumerates the status for types of services.
    queryex---------Queries the extended status for a service, or
                    enumerates the status for types of services.
    start-----------Starts a service.
    pause-----------Sends a PAUSE control request to a service.
    interrogate-----Sends an INTERROGATE control request to a service.
    continue--------Sends a CONTINUE control request to a service.
    stop------------Sends a STOP request to a service.
    config----------Changes the configuration of a service (persistant).
    description-----Changes the description of a service.
    failure---------Changes the actions taken by a service upon failure.
    qc--------------Queries the configuration information for a service.
    qdescription----Queries the description for a service.
    qfailure--------Queries the actions taken by a service upon failure.
    delete----------Deletes a service (from the registry).
    create----------Creates a service. (adds it to the registry).
    control---------Sends a control to a service.
    sdshow----------Displays a service's security descriptor.
    sdset-----------Sets a service's security descriptor.
    GetDisplayName--Gets the DisplayName for a service.
    GetKeyName------Gets the ServiceKeyName for a service.
    EnumDepend------Enumerates Service Dependencies.

  The following commands don't require a service name:
  sc   
    boot------------(ok | bad) Indicates whether the last boot should
                    be saved as the last-known-good boot configuration
    Lock------------Locks the Service Database
    QueryLock-------Queries the LockStatus for the SCManager Database

EXAMPLE: sc start MyService

share|improve this answer
    
You would need run both STOP, then START to get your RESTART effect. –  Brett Veenstra Apr 30 '09 at 12:23
    
I'm not doing this in Python anyway, so this works perfectly. I'll test it out when I get to work! –  Jason Baker Apr 30 '09 at 12:26

try

psexec \\server net stop cherrypyservice
psexec \\server net start cherrypyservice
share|improve this answer

Your Answer

 
discard

By posting your answer, you agree to the privacy policy and terms of service.

Not the answer you're looking for? Browse other questions tagged or ask your own question.