以守护进程方式启动firefly

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

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

startmaster.py 修改后的代码

  1. #coding:utf8

  2.  

  3. import os

  4. import sys 

  5. from twisted.python import log 

  6.  

  7. class Launcher:

  8.     def __init__(self):

  9.         self.serverInit()

  10.         self.daemonize()

  11.         self.startServer()

  12.     def daemonize(self):

  13.         try:

  14.             pid = os.fork()

  15.             if pid > 0:

  16.                 sys.exit(0)

  17.         except OSError,e:

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

  19.             sys.exit(1)

  20.  

  21.         os.setsid()

  22.  

  23.         try:

  24.             pid = os.fork()

  25.             if pid > 0:

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

  27.                 sys.exit(0)

  28.         except OSError, e:

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

  30.             sys.exit(1)

  31.  

  32.  

  33.     def serverInit(self):

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

  35.             from twisted.internet import epollreactor

  36.             epollreactor.install()

  37.     

  38.     def startServer(self):

  39.         from firefly.master.master import Master

  40.         master = Master()

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

  42.         master.start()

  43.  

  44. if __name__=="__main__":

  45.     Launcher()

  46. ~              

复制代码

 

posted @ 2014-08-11 16:39  ing...  阅读(530)  评论(0编辑  收藏  举报