Python Twisted Daemon
-
30-09-2019 - |
문제
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)
reactor.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
해결책
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.
다른 팁
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.