def inner(signals=False, condition=None, event_notifier=None): def before_shutdown(): print "Stopping servers..." import signal import voodoo.gen.launcher as Launcher import voodoo.rt_debugger as rt_debugger rt_debugger.launch_debugger() if condition is not None: waiters = (Launcher.ConditionWait(condition), ) elif signals: waiters = ( Launcher.SignalWait(signal.SIGTERM), Launcher.SignalWait(signal.SIGINT), Launcher.RawInputWait( "Press <enter> or send a sigterm or a sigint to finish.\n"), ) else: waiters = (Launcher.RawInputWait("Control+C to finish.\n"), ) event_notifiers = (Launcher.FileNotifier("_file_notifier", "server started"), ) if event_notifier: event_notifiers += (Launcher.ConditionNotifier(event_notifier), ) launcher = Launcher.Launcher('.', 'myhost', 'myprocess', waiters, "logging.configuration.txt", before_shutdown, event_notifiers) launcher._wait_condition = condition return launcher
def inner(signals = False, condition = None, event_notifier = None): def before_shutdown(): print("Stopping servers...") import signal import voodoo.gen.launcher as Launcher import voodoo.rt_debugger as rt_debugger rt_debugger.launch_debugger() if condition is not None: waiters = ( Launcher.ConditionWait(condition), ) elif signals: waiters = ( Launcher.SignalWait(signal.SIGTERM), Launcher.SignalWait(signal.SIGINT), Launcher.RawInputWait("Press <enter> or send a sigterm or a sigint to finish.\n"), ) else: waiters = ( Launcher.RawInputWait("Control+C to finish.\n"), ) event_notifiers = ( Launcher.FileNotifier("_file_notifier", "server started"), ) if event_notifier: event_notifiers += ( Launcher.ConditionNotifier(event_notifier),) launcher = Launcher.Launcher( '.', 'main_machine', 'main_instance', waiters, "logging.configuration.txt", before_shutdown, event_notifiers ) launcher._wait_condition = condition return launcher
for process in dead_processes: processes.remove(process) if len(processes) == 0: break else: time.sleep(0.05) def kill_launcher(pid_file): pid = int(open(pid_file).read()) os.kill(pid, signal.SIGTERM) if __name__ == '__main__': if len(sys.argv) != 7: print >> sys.stderr, "Error: invalid number of arguments" sys.exit(-1) _, config_dir, machine_name, instance_name, logging_file, waiting_port, debugger_port = sys.argv waiters = (RawInputWait(""), ) notifiers = (SocketNotifier("localhost", int(waiting_port)), ) if debugger_port != "None": rt_debugger.launch_debugger(int(debugger_port)) launcher = Launcher(config_dir, machine_name, instance_name, waiters, logging_file, event_notifiers=notifiers) launcher.launch()
else: if return_code is not None: dead_processes.append(process) for process in dead_processes: processes.remove(process) if len(processes) == 0: break else: time.sleep(0.05) # In the past, HostLauncher was called MachineLauncher. # We keep this for compatiblity reasons MachineLauncher = HostLauncher def kill_launcher(pid_file): pid = int(open(pid_file).read()) os.kill(pid, signal.SIGTERM) if __name__ == '__main__': if len(sys.argv) != 6: print >> sys.stderr, "Error: invalid number of arguments" sys.exit(-1) _, config_dir, host_name, process_name, logging_file, debugger_port = sys.argv waiters = (SignalWait(),) if debugger_port != "None": rt_debugger.launch_debugger(int(debugger_port)) launcher = Launcher(config_dir, host_name, process_name, waiters, logging_file) launcher.launch()
# # Author: Pablo Orduña <*****@*****.**> # import signal import sys sys.path.append('../../src') import weblab import voodoo.gen.loader.Launcher as Launcher def before_shutdown(): print "Stopping servers..." import voodoo.rt_debugger as rt_debugger rt_debugger.launch_debugger() launcher = Launcher.MachineLauncher( '.', 'main_machine', ( Launcher.SignalWait(signal.SIGTERM), Launcher.SignalWait(signal.SIGINT), Launcher.RawInputWait("Press <enter> or send a sigterm or a sigint to finish\n") ), "logging.configuration.txt", before_shutdown, ( Launcher.FileNotifier("_file_notifier", "server started"), ), pid_file = '._machine.pid'
# This software consists of contributions made by many individuals, # listed below: # # Author: Pablo Orduña <*****@*****.**> # import signal import sys sys.path.append('../../src') import weblab import voodoo.gen.loader.Launcher as Launcher def before_shutdown(): print "Stopping servers..." import voodoo.rt_debugger as rt_debugger rt_debugger.launch_debugger() launcher = Launcher.Launcher( '.', 'main_machine', 'main_instance', (Launcher.SignalWait(signal.SIGTERM), Launcher.SignalWait(signal.SIGINT), Launcher.RawInputWait( "Press <enter> or send a sigterm or a sigint to finish.\n")), "logging.configuration.no.log.txt", before_shutdown, (Launcher.FileNotifier("_file_notifier", "server started"), )) launcher.launch()