Pregunta

En otra pregunta He publicado ayer, me dieron muy buenos consejos sobre cómo una secuencia de comandos de Python se puede ejecutar como un servicio en Windows.Lo que estoy buscando es:Cómo es Windows consciente de los servicios que se pueden gestionar en el nativo de herramientas (ventana"servicios" en "herramientas administrativas").I.e.¿cuál es el equivalente en Windows de poner una start/stop script en /etc/init.d bajo Linux?

¿Fue útil?

Solución

Como con la mayoría de los "consciente" de las cosas en Windows, la respuesta es "Registro".

Echa un vistazo a este artículo de Microsoft Knowledge Base: http://support.microsoft.com/kb/103000

La búsqueda de "Un programa Win32 que puede ser iniciado por el Controlador de Servicio y que obedece el servicio de control de protocolo." Este es el tipo de servicio que usted está interesado en.

El servicio de registro (contenido de KEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services \myservice) contiene información sobre el servicio, incluyendo cosas como su ubicación del ejecutable, qué hacer cuando se produce un error (detener el OS?), ¿qué servicios debe ser iniciado antes de esto, lo que el usuario que lo ejecuta.

Como para el servicio de protocolo de control de main() del programa se supone que para invocar una llamada de API de Windows, la configuración de las devoluciones de llamada para iniciar, detener, pausar para su servicio.¿Qué haces en esos devoluciones de llamada es todo para usted.

Otros consejos

Aquí está el código para instalar python-script como un servicio, escrito en python :)

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

Este post también podría ayudarte:

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

No muck con el registro directamente.Usuario de la SC herramienta de línea de comandos.Es decir, SC CREAR

    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

Puede utilizar srvany.exe desde el Kit de Recursos de Windows para crear un usuario define el servicio que se mostrará en el administrador de herramientas de...

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

Estoy utilizando este método para ejecutar tracd (una secuencia de comandos de python / servidor) por el tráco.

Aquí están algunas instrucciones muy claras: http://www.tacktech.com/display.cfm?ttid=197

Esto requiere algo de edición del registro (muy mínimo y fácil), pero te permitirá hacer cualquier línea de comando / script un servicio de windows.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top