def start(listen_address='127.0.0.1',
          listen_port=8001,
          ssl_crt=None,
          ssl_key=None,
          asterisk_binary='/usr/sbin/asterisk',
          asterisk_options='-vvvvvr'):
    salt.utils.process.appendproctitle('AsteriskCLI')
    log.info('Starting Asterisk CLI server at %s:%s.', listen_address,
             listen_port)
    io_loop = salt.ext.tornado.ioloop.IOLoop(make_current=False)
    io_loop.make_current()
    term_manager = UniqueTermManager(
        shell_command=[asterisk_binary, asterisk_options], ioloop=io_loop)
    handlers = [(r'/ws', MyTermSocket, {
        'term_manager': term_manager
    }),
                (r"/xstatic/(.*)", tornado_xstatic.XStaticFileHandler, {
                    'allowed_modules': ['termjs']
                })]
    # Init app.
    app = salt.ext.tornado.web.Application(
        handlers,
        static_path=STATIC_DIR,
        xstatic_url=tornado_xstatic.url_maker('/xstatic/'))
    ssl_options = None
    if all([ssl_crt, ssl_key]):
        ssl_options = {"certfile": ssl_crt, "keyfile": ssl_key}
    http_server = salt.ext.tornado.httpserver.HTTPServer(
        app, ssl_options=ssl_options)
    http_server.listen(listen_port, address=listen_address)
    try:
        if not io_loop._running:
            io_loop.start()
    finally:
        term_manager.shutdown()
Exemple #2
0
import tornado.web
from tornado.ioloop import IOLoop
from terminado import TermSocket, UniqueTermManager
import os,sys
pid = str(os.getpid())
pidfile = "/home/try/xterm.pid"
file(pidfile, 'w').write(pid)
if __name__ == '__main__':
    term_manager = UniqueTermManager(shell_command=["firejail","--quiet","--seccomp=rmdir,exit","--nosound","--caps.drop=all","--name=code-playground","--rlimit-fsize=5000000","--rlimit-nofile=50","--private=/tmp","--net=none","--blacklist=/usr/bin/man","--blacklist=/bin/ps","--blacklist=/usr/bin/passwd","rbash"])
    handlers = [
                 (r"/websocket", TermSocket, {'term_manager': term_manager}),
                 (r"/()", tornado.web.StaticFileHandler, {'path':'/home/try/compiler/index.html'}),
                 (r"/(.*)", tornado.web.StaticFileHandler, {'path':'/home/try/compiler/.'})
               ]
    app = tornado.web.Application(handlers)
    app.listen(8079)
    try:
        IOLoop.current().start()
    finally:
        term_manager.shutdown()
        os.unlink(pidfile)