2012-08-28 16 views
5

im en Win7, empecé un helloworld.py tutorial y todo lo hace bien, pero no sé cómo dejar el uso service.Icómo cerrar el servidor cherrypy?

quit() 

línea de comandos, pero me da un mensaje de error y exit.but el servicio todavía se está ejecutando y toma mi puerto 8080. no había encontrado la forma de apagarlo manualmente.

File "C:\python32\lib\site-packages\cherrypy\process\wspbus.py", line 197, in 
publish 
    output.append(listener(*args, **kwargs)) 
    File "C:\python32\lib\site-packages\cherrypy\_cpserver.py", line 151, in start 

    ServerAdapter.start(self) 
    File "C:\python32\lib\site-packages\cherrypy\process\servers.py", line 167, in 
start 
    wait_for_free_port(*self.bind_addr) 
    File "C:\python32\lib\site-packages\cherrypy\process\servers.py", line 410, in 
wait_for_free_port 
    raise IOError("Port %r not free on %r" % (port, host)) 
IOError: Port 8080 not free on '0.0.0.0' 

Respuesta

4

Según this page, quit() no es apropiado para esta tarea.

Dependiendo de cómo se ejecuta el servidor, se debe considerar el uso cherrypy.engine.exit:

>>> help(cherrypy.engine.exit) 
exit(self) method of cherrypy.process.win32.Win32Bus instance 
    Stop all services and prepare to exit the process. 
4

incluir esto en su archivo de pitón.

@cherrypy.expose 

def shutdown(self): 
    cherrypy.engine.exit() 

A continuación, agregue un enlace en su página.

<a id="shutdown"; href="./shutdown">Shutdown Server</a>