Python Twisted Daemon
I have written a simple twisted server -
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)
reacto开发者_如何学JAVAr.run()
This runs fine on 127.0.0.1:8090
. Note this this runs in terminal (foreground), when I make the process run in background using nohup
& ctrl+Z
. the server does not respond to requests. What should I do to daemonize this twisted server
I'd recommend looking into twistd. That way you don't have to worry about handling any of the start up, pid file management, etc. The documentation on their site is quite good: http://twistedmatrix.com/documents/current/core/howto/basics.html. Also check http://twistedmatrix.com/documents/current/core/howto/tap.html for how to implement the application file.
As nmichael and Rakis already mentioned, after "ctrl+z" type "bg" to resume suspended process as a background job.
To run it directly as background job, type
python myserver.py &
To run it directly as background job that won't stop when you logout, type
nohup python myserver.py &
Also note that nohup
, is not true deamonization. See the differences here: What's the difference between nohup and a daemon?
If you really want to deamonize your Twisted server, the best option is to use twistd
as Mark Loeser answered.
精彩评论