Python Twisted Daemon

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

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 ответа

Решение

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

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

python myserver.py &

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

nohup python myserver.py &

Также обратите внимание, что nohup Это не правда деамонизация. Посмотрите на различия здесь: в чем разница между nohup и демоном?

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

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

Другие вопросы по тегам