Python витая демон
-
30-09-2019 - |
Вопрос
Я написал простой витой сервер -
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
. Отказ Сервер не отвечает на запросы. Что я должен сделать, чтобы сделать это витой сервер
Решение
Как уже упоминалось Nmichael и Rakis, после того, как «Ctrl + Z» введите «BG», чтобы возобновить приостановленный процесс в качестве фоновой работы.
Чтобы запустить его непосредственно как фоновое задание, введите
python myserver.py &
Чтобы запустить его непосредственно в качестве фоновой задачи, которая не остановится при выходе из системы, введите
nohup python myserver.py &
Также обратите внимание nohup
, не настоящая деамонизация. Смотрите различия здесь: В чем разница между нихуп и демоном?
Если вы действительно хотите Daamonize свой извращенный сервер, лучший вариант должен использовать twistd
Как ответил Марк Лесер.
Другие советы
Я бы порекомендовал смотреть в Twistd. Таким образом, вам не нужно беспокоиться о обращении с любым запуском, управление файлами PID и т. Д. Документация на их сайте довольно хорошая: http://twistedmatrix.com/documents/current/core/howto/basics.html.. Отказ Также проверка http://twistedmatrix.com/documents/current/core/howto/tap.html. Для того, как реализовать файл приложения.