Redirect all output; including predictor binary
rodzic
d5b3b02eed
commit
369151d64f
25
predict.py
25
predict.py
|
@ -79,8 +79,8 @@ def main():
|
||||||
help='detach the process and run in the background')
|
help='detach the process and run in the background')
|
||||||
parser.add_option('--alarm', dest='alarm', action="store_true",
|
parser.add_option('--alarm', dest='alarm', action="store_true",
|
||||||
help='setup an alarm for 10 minutes time to prevent hung processes')
|
help='setup an alarm for 10 minutes time to prevent hung processes')
|
||||||
parser.add_option('--log', dest='log_target',
|
parser.add_option('--redirect', dest='redirect', default='/dev/null',
|
||||||
help='file to log debugging messages to', metavar='FILE')
|
help='if forking, file to send stdout/stderr to', metavar='FILE')
|
||||||
parser.add_option('-t', '--timestamp', dest='timestamp',
|
parser.add_option('-t', '--timestamp', dest='timestamp',
|
||||||
help='search for dataset covering the POSIX timestamp TIME \t[default: now]',
|
help='search for dataset covering the POSIX timestamp TIME \t[default: now]',
|
||||||
metavar='TIME', type='int',
|
metavar='TIME', type='int',
|
||||||
|
@ -139,12 +139,6 @@ def main():
|
||||||
|
|
||||||
(options, args) = parser.parse_args()
|
(options, args) = parser.parse_args()
|
||||||
|
|
||||||
# Setup log as soon as possible
|
|
||||||
if options.log_target:
|
|
||||||
log_target = logging.FileHandler(options.log_target)
|
|
||||||
log_target.setFormatter(log_formatter)
|
|
||||||
log.addHandler(log_target)
|
|
||||||
|
|
||||||
# Check we got a UUID in the arguments
|
# Check we got a UUID in the arguments
|
||||||
if len(args) != 1:
|
if len(args) != 1:
|
||||||
log.error('Exactly one positional argument should be supplied (uuid).')
|
log.error('Exactly one positional argument should be supplied (uuid).')
|
||||||
|
@ -154,7 +148,7 @@ def main():
|
||||||
os.chdir(options.directory)
|
os.chdir(options.directory)
|
||||||
|
|
||||||
if options.fork:
|
if options.fork:
|
||||||
detach_process()
|
detach_process(options.redirect)
|
||||||
|
|
||||||
if options.alarm:
|
if options.alarm:
|
||||||
setup_alarm()
|
setup_alarm()
|
||||||
|
@ -547,7 +541,7 @@ def dataset_for_time(time, hd):
|
||||||
|
|
||||||
raise RuntimeError('Could not find appropriate dataset.')
|
raise RuntimeError('Could not find appropriate dataset.')
|
||||||
|
|
||||||
def detach_process():
|
def detach_process(redirect):
|
||||||
# Fork
|
# Fork
|
||||||
if os.fork() > 0:
|
if os.fork() > 0:
|
||||||
os._exit(0)
|
os._exit(0)
|
||||||
|
@ -555,9 +549,12 @@ def detach_process():
|
||||||
# Detach
|
# Detach
|
||||||
os.setsid()
|
os.setsid()
|
||||||
|
|
||||||
null_fd = os.open(os.devnull, os.O_RDWR)
|
null_fd = os.open(os.devnull, os.O_RDONLY)
|
||||||
for s in [sys.stdin, sys.stdout, sys.stderr]:
|
out_fd = os.open(redirect, os.O_WRONLY | os.O_APPEND)
|
||||||
os.dup2(null_fd, s.fileno())
|
|
||||||
|
os.dup2(null_fd, sys.stdin.fileno())
|
||||||
|
for s in [sys.stdout, sys.stderr]:
|
||||||
|
os.dup2(out_fd, s.fileno())
|
||||||
|
|
||||||
# Fork
|
# Fork
|
||||||
if os.fork() > 0:
|
if os.fork() > 0:
|
||||||
|
@ -573,7 +570,7 @@ if __name__ == '__main__':
|
||||||
try:
|
try:
|
||||||
main()
|
main()
|
||||||
except SystemExit as e:
|
except SystemExit as e:
|
||||||
log.debug("Caught: " + repr(e))
|
log.debug("Exit: " + repr(e))
|
||||||
if e.code != 0 and progress_f:
|
if e.code != 0 and progress_f:
|
||||||
update_progress(error="Unknown error exit")
|
update_progress(error="Unknown error exit")
|
||||||
raise
|
raise
|
||||||
|
|
|
@ -135,7 +135,7 @@ function runPred($pred_model) {
|
||||||
$predictor_lon = number_format($pred_model['lon'], 0);
|
$predictor_lon = number_format($pred_model['lon'], 0);
|
||||||
|
|
||||||
$log = PREDS_PATH . $pred_model['uuid'] . "/" . LOG_FILE;
|
$log = PREDS_PATH . $pred_model['uuid'] . "/" . LOG_FILE;
|
||||||
$sh = ROOT . "/predict.py --cd=" . ROOT . " --fork --alarm --log=$log -v --latdelta="
|
$sh = ROOT . "/predict.py --cd=" . ROOT . " --fork --alarm --redirect=predict/$log -v --latdelta="
|
||||||
.$pred_model['delta_lat']." --londelta=".$pred_model['delta_lon']
|
.$pred_model['delta_lat']." --londelta=".$pred_model['delta_lon']
|
||||||
." -p1 -f5 -t ".$pred_model['timestamp']
|
." -p1 -f5 -t ".$pred_model['timestamp']
|
||||||
." --lat=".$predictor_lat." --lon=".$predictor_lon." " . $use_hd
|
." --lat=".$predictor_lat." --lon=".$predictor_lon." " . $use_hd
|
||||||
|
|
Ładowanie…
Reference in New Issue