Ejemplo n.º 1
0
# Set an interrupt handler
def handle_int(signal, frame):
    import os
    from sts.util.rpc_forker import LocalForker

    sys.stderr.write("Caught signal %d, stopping sdndebug (pid %d)\n" % (signal, os.getpid()))
    if simulator.simulation_cfg.current_simulation is not None:
        simulator.simulation_cfg.current_simulation.clean_up()
    # kill fork()ed procs
    LocalForker.kill_all()
    sys.exit(13)


signal.signal(signal.SIGINT, handle_int)
signal.signal(signal.SIGTERM, handle_int)
signal.signal(signal.SIGQUIT, handle_int)

# Start the simulation
try:
    # First tell simulator where to log
    simulator.init_results(config.results_dir)
    # Now start the simulation
    simulation = simulator.simulate()
finally:
    if simulator.simulation_cfg.current_simulation is not None:
        simulator.simulation_cfg.current_simulation.clean_up()
    if args.publish:
        exp_lifecycle.publish_results(config.exp_name, config.results_dir)

sys.exit(simulation.exit_code)
Ejemplo n.º 2
0
# Set an interrupt handler
def handle_int(signal, frame):
    import os
    from sts.util.rpc_forker import LocalForker
    sys.stderr.write("Caught signal %d, stopping sdndebug (pid %d)\n" %
                     (signal, os.getpid()))
    if (simulator.simulation_cfg.current_simulation is not None):
        simulator.simulation_cfg.current_simulation.clean_up()
    # kill fork()ed procs
    LocalForker.kill_all()
    sys.exit(13)


signal.signal(signal.SIGINT, handle_int)
signal.signal(signal.SIGTERM, handle_int)
signal.signal(signal.SIGQUIT, handle_int)

# Start the simulation
try:
    # First tell simulator where to log
    simulator.init_results(config.results_dir)
    # Now start the simulation
    simulation = simulator.simulate()
finally:
    if (simulator.simulation_cfg.current_simulation is not None):
        simulator.simulation_cfg.current_simulation.clean_up()
    if args.publish:
        exp_lifecycle.publish_results(config.exp_name, config.results_dir)

sys.exit(simulation.exit_code)