114def reload_from_json(filename, suppress_args=[], jobOptions=None):
115 """Re-launch athenaHLT from the given json file. Optionally suppress
116 the list of command line args (e.g. flags).
117 jobOptions: the positional argument to be replaced by `filename`."""
118
119
120 argv = []
121 for arg_index, arg in enumerate(sys.argv):
122 if arg == '--dump-config-reload':
123 continue
124 if arg in ['--precommand', '-c', '--postcommand', '-C']:
125 continue
126 if arg_index > 0 and sys.argv[arg_index-1] in ['--precommand', '-c', '--postcommand', '-C']:
127 continue
128 if arg.startswith('--precommand') or arg.startswith('--postcommand'):
129 continue
130 if arg in suppress_args:
131 continue
132 argv.append(arg)
133
134 if jobOptions is not None and jobOptions in argv:
135 argv[argv.index(jobOptions)] = filename
136 else:
137 argv[-1] = filename
138 log.info('Restarting %s from %s ...', argv[0], filename)
139 sys.stdout.flush()
140 sys.stderr.flush()
141 os.execvp(argv[0], argv)
142
143
144
145
146