以守护进程方式启动firefly

原地址:http://www.9miao.com/question-15-53966.html

最近看源码,查了半天,没找到已守护进程方式启动firefly的方法,自己改了改写了一个,废话不多说直接上代码。

startmaster.py 修改后的代码

  1. #coding:utf8

  2. import os

  3. import sys

  4. from twisted.python import log

  5. class Launcher:

  6. def __init__(self):

  7. self.serverInit()

  8. self.daemonize()

  9. self.startServer()

  10. def daemonize(self):

  11. try:

  12. pid = os.fork()

  13. if pid > 0:

  14. sys.exit(0)

  15. except OSError,e:

  16. log.msg("Fork 1 has failed --> %d--[%s]\n" % (e.errno,e.strerror))

  17. sys.exit(1)

  18. os.setsid()

  19. try:

  20. pid = os.fork()

  21. if pid > 0:

  22. log.msg("Daemon process pid %d" % pid)

  23. sys.exit(0)

  24. except OSError, e:

  25. log.msg("Fork 2 has failed --> %d--[%s]" % (e.errno, e.strerror))

  26. sys.exit(1)

  27. def serverInit(self):

  28. if os.name!='nt' and os.name!='posix':

  29. from twisted.internet import epollreactor

  30. epollreactor.install()

  31. def startServer(self):

  32. from firefly.master.master import Master

  33. master = Master()

  34. master.config('config.json','appmain.py')

  35. master.start()

  36. if __name__=="__main__":

  37. Launcher()

  38. ~

复制代码

上一篇:Java 数列求和


下一篇:SSH工作原理图