Python Twisted Daemon
-
30-09-2019 - |
Pregunta
He escrito un servidor de trenzado sencillo -
from twisted.internet import reactor
from twisted.internet import protocol
from twisted.web import server, resource
from twisted.internet import reactor
class Index(resource.Resource):
isLeaf = True
def render_GET(self, request):
args = request.args
print 'Args: %s' %(repr(args))
print 'Serving on PORT: 8090'
site = server.Site(Index())
reactor.listenTCP(8090, site)
reactor.run()
Esto funciona muy bien en 127.0.0.1:8090
. Nota Este Esto ejecuta en el terminal (en primer plano), cuando hago el proceso de ejecución en segundo plano usando nohup
y ctrl+Z
. el servidor no responde a las solicitudes. ¿Qué debo hacer para demonizar este servidor trenzado
Solución
Como nmichael y Rakis ya se ha mencionado, después de "ctrl + z" tipo "bg" para reanudar proceso suspendido como un trabajo de fondo.
Para ejecutar directamente como tarea en segundo plano, escriba
python myserver.py &
Para ejecutar directamente como tarea en segundo plano que no se detiene cuando se cierra la sesión, escriba
nohup python myserver.py &
Tenga en cuenta también que nohup
, no es cierto deamonization. Ver las diferencias aquí: ¿Cuál es la diferencia entre nohup y un demonio ? a>
Si realmente quiere deamonize su servidor trenzado, la mejor opción es utilizar twistd
como respondió Marcos Loeser.
Otros consejos
Me gustaría recomendar buscando en twistd. De esa manera usted no tiene que preocuparse por el manejo de cualquiera de la puesta en marcha, gestión de archivos PID, etc. La documentación en su sitio es bastante bueno: http://twistedmatrix.com/documents/current/core/howto/basics.html . También puedes http://twistedmatrix.com/documents/current/core/howto/tap .html de cómo implementar el archivo de la aplicación.