From 2e645039c2ea7a7e0684e46799db2a901a5d3cae Mon Sep 17 00:00:00 2001 From: Arturo FilastoĢ€ Date: Tue, 23 Aug 2011 01:33:13 +0200 Subject: Fix #3790 Add a daemon class and make tor web ui run as such. --- packages/torouter-web/src/runui.py | 63 ++++++++++++++++++++++++++------------ 1 file changed, 44 insertions(+), 19 deletions(-) (limited to 'packages/torouter-web/src/runui.py') diff --git a/packages/torouter-web/src/runui.py b/packages/torouter-web/src/runui.py index d5c7c9e..488c483 100644 --- a/packages/torouter-web/src/runui.py +++ b/packages/torouter-web/src/runui.py @@ -3,6 +3,8 @@ # by Arturo Filasto' # +import sys, time, os +from daemon import Daemon import web from tui import config import tui.controllers @@ -10,27 +12,50 @@ import tui.controllers from tui.utils import session from tui.view import render - # This is the main structure of URLs urls = ( - '/', 'tui.controllers.main.index', -# '/config/(tor|router)', 'tui.controllers.main.config', - '/network', 'tui.controllers.network.main', - '/network/firewall', 'tui.controllers.network.firewall', - '/network/wireless', 'tui.controllers.network.wireless', - '/network/wired', 'tui.controllers.network.wired', - '/network/status', 'tui.controllers.network.status', - '/tor', 'tui.controllers.tor.status', - '/tor/config', 'tui.controllers.tor.torrc', - '/logout', 'tui.controllers.main.logout' - ) -# '/wizard/([0-9a-f]{1,2})?', 'tui.controllers.wizard.step', -# '/status', 'tui.controllers.status') + '/', 'tui.controllers.main.index', +# '/config/(tor|router)', 'tui.controllers.main.config', + '/network', 'tui.controllers.network.main', + '/network/firewall', 'tui.controllers.network.firewall', + '/network/wireless', 'tui.controllers.network.wireless', + '/network/wired', 'tui.controllers.network.wired', + '/network/status', 'tui.controllers.network.status', + '/tor', 'tui.controllers.tor.status', + '/tor/config', 'tui.controllers.tor.torrc', + '/logout', 'tui.controllers.main.logout' + ) +# '/wizard/([0-9a-f]{1,2})?', 'tui.controllers.wizard.step', +# '/status', 'tui.controllers.status') + +app = web.application(urls, globals()) +# add session management to the app +session.add_session_to_app(app) +app.internalerror = web.debugerror +class TorWebDaemon(Daemon): + def run(self): + app.run() + +DEBUG = False if __name__ == "__main__": - app = web.application(urls, globals()) - # Add session management to the app - session.add_session_to_app(app) - app.internalerror = web.debugerror - app.run() + if DEBUG: + app.run() + service = TorWebDaemon(os.path.join(os.getcwd(),'tui.pid')) + if len(sys.argv) == 2: + if 'start' == sys.argv[1]: + sys.argv[1] = '8080' + service.start() + elif 'stop' == sys.argv[1]: + service.stop() + elif 'restart' == sys.argv[1]: + service.restart() + else: + print "Unknown command" + sys.exit(2) + sys.exit(0) + else: + print "usage: %s start|stop|restart" % sys.argv[0] + sys.exit(2) + -- cgit v1.2.3