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