mirror of
https://github.com/avatao-content/test-tutorial-framework
synced 2024-12-05 02:31:33 +00:00
Make event_handler_main shutdown gracefully on SIGTERM and SIGINT
This commit is contained in:
parent
6544243844
commit
e204cc7422
@ -1,9 +1,10 @@
|
||||
from ast import literal_eval
|
||||
from functools import partial
|
||||
from signal import signal, SIGTERM, SIGINT
|
||||
|
||||
from tornado.ioloop import IOLoop
|
||||
|
||||
from tfw import YamlFSM, FSMAwareEventHandler
|
||||
from tfw import YamlFSM, FSMAwareEventHandler, EventHandlerBase
|
||||
from tfw.components import IdeEventHandler, TerminalEventHandler
|
||||
from tfw.components import ProcessManagingEventHandler, BashMonitor
|
||||
from tfw.components import TerminalCommands, LogMonitoringEventHandler
|
||||
@ -136,9 +137,12 @@ if __name__ == '__main__':
|
||||
# Example terminal command callback
|
||||
terminal.historymonitor.subscribe_callback(cenator)
|
||||
|
||||
try:
|
||||
IOLoop.instance().start()
|
||||
finally:
|
||||
eventhandlers = {fsm, ide, terminal, processmanager, logmonitor, message_fsm_steps}
|
||||
for eh in eventhandlers:
|
||||
event_handlers = EventHandlerBase.get_local_instances()
|
||||
def cleanup(sig, frame):
|
||||
for eh in event_handlers:
|
||||
eh.cleanup()
|
||||
exit(0)
|
||||
signal(SIGTERM, cleanup)
|
||||
signal(SIGINT, cleanup)
|
||||
|
||||
IOLoop.instance().start()
|
||||
|
Loading…
Reference in New Issue
Block a user