Fix/Improve startup/init.

Change-Id: Ia4b90c75a8cf89f4069bd8984a0e0c88f9ffa832
This commit is contained in:
Alexander Lenz
2016-08-08 11:12:19 +02:00
parent e0bf201b48
commit 2dae7649be
5 changed files with 153 additions and 77 deletions

View File

@ -48,15 +48,10 @@ def parseArgv(argv):
action='store_true', default=False)
loggroup.add_argument("-q", "--quiet", help="suppress non-error messages",
action='store_true', default=False)
parser.add_argument("action",
help="What to do: (re)start, status or stop",
choices=['start', 'status', 'stop', 'restart'],
default="status")
parser.add_argument("name",
type=str,
help="Name of the instance.\n"
" Uses etc/name.cfg for configuration\n"
"may be omitted to mean ALL (which are configured)",
nargs='?', default='')
" Uses etc/name.cfg for configuration\n",)
parser.add_argument('-d',
'--daemonize',
action='store_true',
@ -73,45 +68,16 @@ def main(argv=None):
loglevel = 'debug' if args.verbose else ('error' if args.quiet else 'info')
loggers.initLogging('secop', loglevel, path.join(log_path))
logger = loggers.log
srvNames = []
srv = Server(args.name, basepath)
if not args.name:
print('No name given, iterating over all specified servers')
for dirpath, dirs, files in os.walk(etc_path):
for fn in files:
if fn.endswith('.cfg'):
srvNames.append(fn[:-4])
else:
logger.debug('configfile with strange extension found: %r'
% path.basename(fn))
# ignore subdirs!
while (dirs):
dirs.pop()
if args.daemonize:
srv.start()
else:
srvNames = [args.name]
srvs = []
for entry in srvNames:
srv = Server(entry, basepath)
srvs.append(srv)
if args.action == "restart":
srv.stop()
srv.start()
elif args.action == "start":
if len(srvNames) > 1 or args.daemonize:
srv.start()
else:
srv.run()
elif args.action == "stop":
srv.stop()
elif args.action == "status":
if srv.isAlive():
logger.info("Server %s is running." % entry)
else:
logger.info("Server %s is DEAD!" % entry)
try:
srv.run()
except KeyboardInterrupt:
pass
if __name__ == '__main__':