문제

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.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top