105def reload_from_json(filename, suppress_args=[]):
106 """Re-launch athenaHLT from the given json file. Optionally suppress
107 the list of command line args (e.g. flags)."""
108
109
110 argv = []
111 for arg_index, arg in enumerate(sys.argv):
112 if arg == '--dump-config-reload':
113 continue
114 if arg in ['--precommand', '-c', '--postcommand', '-C']:
115 continue
116 if arg_index > 0 and sys.argv[arg_index-1] in ['--precommand', '-c', '--postcommand', '-C']:
117 continue
118 if arg.startswith('--precommand') or arg.startswith('--postcommand'):
119 continue
120 if arg in suppress_args:
121 continue
122 argv.append(arg)
123
124 argv[-1] = filename
125 log.info('Restarting %s from %s ...', argv[0], argv[-1])
126 sys.stdout.flush()
127 sys.stderr.flush()
128 os.execvp(argv[0], argv)
129
130
131
132
133