Python Twisted Daemon - PullRequest
       24

Python Twisted Daemon

2 голосов
/ 06 января 2011

Я написал простой витой сервер -

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()

Это нормально работает на 127.0.0.1:8090. Обратите внимание, это выполняется в терминале (на переднем плане), когда я запускаю процесс в фоновом режиме, используя nohup & ctrl+Z. сервер не отвечает на запросы. Что я должен сделать, чтобы демонизировать этот витой сервер

Ответы [ 2 ]

9 голосов
/ 06 января 2011

Я бы порекомендовал посмотреть в твист. Таким образом, вам не нужно беспокоиться об управлении запуском, управлением файлами pid и т. Д. Документация на их сайте довольно хорошая: http://twistedmatrix.com/documents/current/core/howto/basics.html. Также проверьте http://twistedmatrix.com/documents/current/core/howto/tap.html, как реализовать файл заявки.

3 голосов
/ 09 января 2011

Как уже упоминали nmichael и Rakis, после "ctrl + z" введите "bg", чтобы возобновить приостановленный процесс как фоновое задание.

Чтобы запустить его непосредственно как фоновое задание, введите

python myserver.py &

Чтобы запустить его непосредственно как фоновое задание, которое не остановится при выходе из системы, введите

nohup python myserver.py &

Также обратите внимание, что nohup не является истинной деамонизацией.См. Различия здесь: В чем разница между nohup и демоном?

Если вы действительно хотите деамонизировать ваш Twisted сервер, лучше всего использовать twistd как ответил Марк Лозер.

...