Daemon Twisted Python
-
30-09-2019 - |
Question
J'ai écrit un simple serveur torsadé -
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()
Cela va bien sur 127.0.0.1:8090
. Notez que ce cela va dans le terminal (au premier plan), quand je fais la course de processus en arrière-plan en utilisant nohup
& ctrl+Z
. le serveur ne répond pas aux demandes. Que dois-je faire pour daemonize ce serveur tordu
La solution
nmichael et Rakis déjà mentionné, après "ctrl + z" type "bg" pour reprendre procédé en suspension en tant que tâche de fond.
Pour exécuter directement comme tâche de fond, tapez
python myserver.py &
Pour exécuter directement comme tâche de fond qui ne s'arrêtera lorsque vous fermez la session, tapez
nohup python myserver.py &
Notez également que nohup
, n'est pas vrai deamonization. Voir ici les différences: Quelle est la différence entre nohup et un démon?
Si vous voulez vraiment deamonize votre serveur Twisted, la meilleure option est d'utiliser twistd
comme Mark Loeser a répondu.
Autres conseils
Je conseille de regarder dans twistd. De cette façon, vous n'avez pas à vous soucier de la manipulation de tout le démarrage, la gestion des fichiers pid, etc. La documentation sur leur site est assez bon: http://twistedmatrix.com/documents/current/core/howto/basics.html . Jetez également http://twistedmatrix.com/documents/current/core/howto/tap .html pour savoir comment mettre en œuvre le fichier d'application.