Есть три способа демонизировать проект на Twisted.
1) использование родного демона twistd. По идее - это более "методически грамотный" способ, но в свое время что-то не завелся у меня "в лоб", по этому до сих пор применяю второй.
2) скрестить старый работающий демон с реактором Twisted
Да, procname служит для переименования процесса, о чем писал тут.
3) есть еще правда и python-daemon (PEP-3143), надо бы повнимательней изучить, но думаю что родной twistd оптимальней.
1) использование родного демона twistd. По идее - это более "методически грамотный" способ, но в свое время что-то не завелся у меня "в лоб", по этому до сих пор применяю второй.
2) скрестить старый работающий демон с реактором Twisted
#!/usr/bin/python import sys import src.daemon import procname class YourServer(twisted.web.server.Site): pass class YourDaemon(Daemon): name = 'yourserverd' site = None server = None #-------------------------------------------------------------------------- def __init__(self): self.server = YourServer() Daemon.__init__(self, pidfile='/var/run/%s.pid' % (self.name.lower()) ) procname.setprocname(self.name) #-------------------------------------------------------------------------- def run(self): self.server = YourServer() reactor.listenTCP(self.server.port, self.server) reactor.run() if __name__ == '__main__': daemon = YourDaemon() daemon.processAction(sys.argv)
Да, procname служит для переименования процесса, о чем писал тут.
3) есть еще правда и python-daemon (PEP-3143), надо бы повнимательней изучить, но думаю что родной twistd оптимальней.
у твистеда же свой лаунчер есть
ОтветитьУдалитьА вариант 1) в тексте никто не заметил? ;-)
ОтветитьУдалить