以守护进程方式启动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] " % (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.     

  32.     def startServer(self):

  33.         from firefly.master.master import Master

  34.         master = Master()

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

  36.         master.start()

  37. if __name__=="__main__":

  38.     Launcher()

  39. ~              

复制代码
原文地址:https://www.cnblogs.com/123ing/p/3905071.html