2011-12-29 22 views
8

He creado un servicio de Windows para iniciar un script .py.Inicie python .py como un servicio en Windows

sc create "Maraschino" binPath= "C:\HTPC\Maraschino\maraschino-cherrypy.py" DisplayName= "Maraschino" depend= "Tcpip" 

entonces he añadido una clave de registro para vincular el .py para abrir usando python.exe

Windows Registry Editor Version 5.00 
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Maraschino\Parameters] 
"AppDirectory"="C:\\Python27" 
"Application"="C:\\Python27\\python.exe C:\\HTPC\\Maraschino\\maraschino-cherrypy.py" 

Sin embargo cuando intento iniciar el servicio me sale error 193 0xC1 que cuando se reveló que en Google no es un exe válido que estoy tratando de comenzar. Sé que no es un .exe, pero un .py y vincularlo para abrir con python.exe debería solucionarlo, pero estoy cometiendo un error. ¿Alguien tiene alguna idea de lo que podría estar haciendo mal cuando se une la secuencia de comandos para utilizar python.exe

Gracias

+0

intente llamar el archivo .pyc lugar. – Marcom

+0

@Marcom Gracias, pero eso no funciona. Es una aplicación por lo que todo se ha compilado y para ejecutarlo funciona maraschino-cherrypy.py al hacer doble clic simplemente no a través de los servicios –

+0

Todos estos son duplicados: http://stackoverflow.com/search?q=python+windows+service –

Respuesta

17

Usted puede hacer esto mediante el srvany.exe, que es una herramienta de Microsoft dedicada para este tipo de tareas.

Primero, descargue e instale el Windows Resource Kit. Nota: solo necesita srvany.exe, que funciona en todas las versiones de Windows.

Suponiendo que el Kit de recursos de Windows se instala en C: \ Archivos de programa \ Windows Resource Kits \ Run:

sc create "[YourService]" binPath= "C:\Program Files\Windows Resource Kits\srvany.exe" 

Ahora, ejecute regedit .

En el cuadro de diálogo Editor del Registro seleccione HKEY_LOCAL_MACHINE > SYSTEM > CurrentControlSet > Services > [YourService]

Con [YourService] seleccionado, pulsa Editar> Nuevo> Clave de la barra de herramientas.

Tipo Parámetros y pulse intro.

En la barra de herramientas, seleccione Editar> Nuevo> Valor de cadena.

Tipo Aplicación y presiona enter.

Haga clic derecho en Aplicación y seleccione Modificar.

C:\Python27\python.exe C:\[YourServicePath].py 

Pulse el botón Aceptar.

¡Y boom! tienes un buen servicio nuevo.

+0

Bien, gracias, esperaba escaparme sin instalar nada, pero esto funcionará. Gracias –

+0

¡En realidad no tiene que instalar nada! Simplemente obtenga srvany.exe (instálelo una vez y cómelo, o escríbalo en google). Tírelo en la carpeta de scripts y configúrelo en binPath. Esto es lo que hacemos en el entorno de producción. – Ohad

+0

srvany.exe - ¿para una PC nueva que no tiene el kit de recursos de Windows cómo instalar allí? – YumYumYum

0

No sé cómo funciona sc, pero yo creo que debe haber alguna manera de pasar parámetros al binario, por lo que podría intentar registrar "C: \ Python27 \ python.exe C: \ HTPC \ Maraschino \ maraschino-cherrypy.py" en su lugar.

También puede probar py2exe :)

0

Actualizaciones de @Ohad. En primer lugar srvany.exe se va a desplegar a todas las máquinas

Paso 1:

  • Descargar e instalar el Kit de recursos de Windows.
  • que se encontró en mi cuadro: C: \ Archivos de programa (x86) \ Kits de recursos de Windows \ Tools \ srvany.exe.
  • símbolo del sistema A continuación, abra y se golpeó

    sc create "[YourService]" binPath = "C: \ Archivos de programa (x86) \ Windows Recursos Kits \ Tools \ srvany.exe" start = auto DisplayName = "[ YourService monitor]"

    [SC] CreateService ÉXITO

Paso 2: hacer un file.reg con contenido siguiente y haga doble clic en él

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\[YourService]\Parameters] 
"Application"="C:\\[YourService Executable].exe" 

Paso 3: Ahora se inicia el servicio y se ejecutará lo que jamás se ha asignado en el file.reg

Hecho

Cuestiones relacionadas