Skip to content Skip to sidebar Skip to footer

How Do I Make Windows Aware Of A Service I Have Written In Python?

In another question I posted yesterday, I got very good advice on how a Python script could be run as a service in Windows. What I'm left wondering is: How is Windows aware of the

Solution 1:

Don't muck with the registry directly. User the SC command-line tool. Namely, SC CREATE

    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

Solution 2:

Here is code to install a python-script as a service, written in python :)

http://code.activestate.com/recipes/551780/

This post could also help you out:

http://essiene.blogspot.com/2005/04/python-windows-services.html

Solution 3:

You can use srvany.exe from Windows NT Resource Kit to create a user defined service that will show up in the admin tools...

http://support.microsoft.com/kb/137890

I am using this method to run tracd (a python script / server) for trac.

Here are some very clear instructions: http://www.tacktech.com/display.cfm?ttid=197

It does require some registry editing (very minimal and easy) but will allow you to make any command line / script a windows service.

Post a Comment for "How Do I Make Windows Aware Of A Service I Have Written In Python?"