mirror of
https://github.com/avatao-content/test-tutorial-framework
synced 2024-11-15 04:17:17 +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 ast import literal_eval
|
||||||
from functools import partial
|
from functools import partial
|
||||||
|
from signal import signal, SIGTERM, SIGINT
|
||||||
|
|
||||||
from tornado.ioloop import IOLoop
|
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 IdeEventHandler, TerminalEventHandler
|
||||||
from tfw.components import ProcessManagingEventHandler, BashMonitor
|
from tfw.components import ProcessManagingEventHandler, BashMonitor
|
||||||
from tfw.components import TerminalCommands, LogMonitoringEventHandler
|
from tfw.components import TerminalCommands, LogMonitoringEventHandler
|
||||||
@ -136,9 +137,12 @@ if __name__ == '__main__':
|
|||||||
# Example terminal command callback
|
# Example terminal command callback
|
||||||
terminal.historymonitor.subscribe_callback(cenator)
|
terminal.historymonitor.subscribe_callback(cenator)
|
||||||
|
|
||||||
try:
|
event_handlers = EventHandlerBase.get_local_instances()
|
||||||
IOLoop.instance().start()
|
def cleanup(sig, frame):
|
||||||
finally:
|
for eh in event_handlers:
|
||||||
eventhandlers = {fsm, ide, terminal, processmanager, logmonitor, message_fsm_steps}
|
|
||||||
for eh in eventhandlers:
|
|
||||||
eh.cleanup()
|
eh.cleanup()
|
||||||
|
exit(0)
|
||||||
|
signal(SIGTERM, cleanup)
|
||||||
|
signal(SIGINT, cleanup)
|
||||||
|
|
||||||
|
IOLoop.instance().start()
|
||||||
|
Loading…
Reference in New Issue
Block a user