Daemonize zuul.
Change-Id: If3d30ec8f03ca35d8c8dd2c1347441aab535f8a1
This commit is contained in:
parent
c84dd2666b
commit
d3bbe00b6a
26
zuul-server
26
zuul-server
|
@ -15,6 +15,8 @@
|
|||
|
||||
import argparse
|
||||
import ConfigParser
|
||||
import daemon
|
||||
import daemon.pidlockfile
|
||||
import logging.config
|
||||
import os
|
||||
import signal
|
||||
|
@ -33,6 +35,8 @@ class Server(object):
|
|||
parser = argparse.ArgumentParser(description='Project gating system.')
|
||||
parser.add_argument('-c', dest='config',
|
||||
help='specify the config file')
|
||||
parser.add_argument('-d', dest='nodaemon', action='store_true',
|
||||
help='do not run as a daemon')
|
||||
self.args = parser.parse_args()
|
||||
|
||||
def read_config(self):
|
||||
|
@ -80,13 +84,21 @@ class Server(object):
|
|||
while True:
|
||||
signal.pause()
|
||||
|
||||
def start(self):
|
||||
self.parse_arguments()
|
||||
self.read_config()
|
||||
self.setup_logging()
|
||||
self.main()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
server = Server()
|
||||
server.start()
|
||||
server.parse_arguments()
|
||||
server.read_config()
|
||||
server.setup_logging()
|
||||
|
||||
if server.config.has_option('zuul', 'pidfile'):
|
||||
pid_fn = os.path.expanduser(server.config.get('zuul', 'pidfile'))
|
||||
else:
|
||||
pid_fn = '/var/run/zuul/zuul.pid'
|
||||
pid = daemon.pidlockfile.TimeoutPIDLockFile(pid_fn, 10)
|
||||
|
||||
if server.args.nodaemon:
|
||||
server.main()
|
||||
else:
|
||||
with daemon.DaemonContext(pidfile=pid):
|
||||
server.main()
|
||||
|
|
Loading…
Reference in New Issue