Esempio n. 1
0
def __start_service(mode, debug):
    if not debug:
        pid = os.fork()
        if pid != 0: sys.exit(0)

        os.setsid()
        os.umask(0)
        pid = os.fork()

        if pid != 0: sys.exit(0)
        proc.write_pid(PID_FILE)

    config_path = "%s/fdslight_etc/fn_client.ini" % BASE_DIR

    configs = configfile.ini_parse_from_file(config_path)

    cls = _fdslight_client()

    if debug:
        cls.ioloop(mode, debug, configs)
        return
    try:
        cls.ioloop(mode, debug, configs)
    except:
        logging.print_error()
Esempio n. 2
0
def __start_service(debug, enable_nat_module):
    if not debug and os.path.isfile(PID_FILE):
        print("the fdsl_server process exists")
        return

    if not debug:
        pid = os.fork()
        if pid != 0: sys.exit(0)

        os.setsid()
        os.umask(0)
        pid = os.fork()

        if pid != 0: sys.exit(0)
        proc.write_pid(PID_FILE)

    configs = configfile.ini_parse_from_file("%s/fdslight_etc/fn_server.ini" %
                                             BASE_DIR)
    cls = _fdslight_server()

    if debug:
        cls.ioloop(debug, configs, enable_nat_module=enable_nat_module)
        return
    try:
        cls.ioloop(debug, configs, enable_nat_module=enable_nat_module)
    except:
        logging.print_error()

    os.remove(PID_FILE)
Esempio n. 3
0
def __start_service(mode, debug):
    if not debug:
        pid = os.fork()
        if pid != 0: sys.exit(0)

        os.setsid()
        os.umask(0)
        pid = os.fork()

        if pid != 0: sys.exit(0)
        proc.write_pid(PID_FILE)

    config_path = "%s/fdslight_etc/fn_client.ini" % BASE_DIR

    configs = configfile.ini_parse_from_file(config_path)

    cls = _fdslight_client()

    if debug:
        cls.ioloop(mode, debug, configs)
        return
    try:
        cls.ioloop(mode, debug, configs)
    except:
        logging.print_error()
Esempio n. 4
0
def start(debug, wol_key, wol_port, wol_bind_ip):
    if not debug:
        if os.path.exists(PID_PATH):
            sys.stderr.write("the process exists\r\n")
            sys.exit(-1)
        pid = os.fork()
        if pid != 0: sys.exit(0)

        os.setsid()
        os.umask(0)

        pid = os.fork()
        if pid != 0: sys.exit(0)

        sys.stderr = open(ERR_FILE, "a")
        sys.stdout = open(LOG_FILE, "a")

        proc.write_pid(PID_PATH)
    cls = service()
    try:
        cls.ioloop(wol_key, wol_bind_ip=wol_bind_ip, debug=debug, wol_port=wol_port)
    except KeyboardInterrupt:
        cls.release()
    except:
        cls.release()
        logging.print_error()

    if os.path.isfile(PID_PATH): os.remove(PID_PATH)
    sys.exit(0)
Esempio n. 5
0
def start(debug):
    if not debug:
        pid = os.fork()
        if pid != 0: sys.exit(0)

        os.setsid()
        os.umask(0)

        pid = os.fork()
        if pid != 0: sys.exit(0)

        proc.write_pid(PID_PATH)
        sys.stderr = open(ERR_FILE, "a")
        sys.stdout = open(LOG_FILE, "a")

    cls = service()
    try:
        cls.ioloop(debug=debug)
    except KeyboardInterrupt:
        cls.release()
        if not debug: os.remove(PID_PATH)
        if os.path.exists(SOCK_FILE): os.remove(SOCK_FILE)
        sys.exit(0)
    except:
        cls.release()
        if not debug: os.remove(PID_PATH)
        if os.path.exists(SOCK_FILE): os.remove(SOCK_FILE)
        logging.print_error()
        sys.exit(-1)
Esempio n. 6
0
def __start_service(debug):
    if not debug and os.path.isfile(PID_FILE):
        print("the fdsl_pm_client process exists")
        return

    if not debug:
        pid = os.fork()
        if pid != 0: sys.exit(0)

        os.setsid()
        os.umask(0)
        pid = os.fork()

        if pid != 0: sys.exit(0)
        proc.write_pid(PID_FILE)

    config_path = "%s/fdslight_etc/fn_pm_client.ini" % BASE_DIR

    configs = configfile.ini_parse_from_file(config_path)

    cls = _fdslight_pm_client()

    if debug:
        cls.ioloop(debug, configs)
        return
    try:
        cls.ioloop(debug, configs)
    except:
        logging.print_error()

    os.remove(PID_FILE)
Esempio n. 7
0
def main():
    help_doc = """
    debug | start | stop
    debug | start  --port=port
    debug:  windows support it
    start   only unix-like support
    stop    only unix-like support
    """

    if len(sys.argv) < 2:
        print(help_doc)
        return

    action = sys.argv[1]

    if action not in ("debug", "stop", "start"):
        print(help_doc)
        return

    if action == "stop":
        stop()
        return

    try:
        opts, args = getopt.getopt(sys.argv[2:], "", ["port="])
    except getopt.GetoptError:
        print(help_doc)
        return

    port = None
    for k, v in opts:
        if k == "--port": port = v

    if None == port:
        print(help_doc)
        return

    if not cfg_check.is_port(port):
        sys.stderr.write("wrong port number\r\n")
        return

    debug = True

    if action == "start":
        debug = False
        pid = os.fork()
        if pid != 0: sys.exit(0)

        os.setsid()
        os.umask(0)

        pid = os.fork()
        if pid != 0: sys.exit(0)
        proc.write_pid(PID_PATH)

    cls = power_ctl(int(port), debug=debug)
    try:
        cls.wait()
    except KeyboardInterrupt:
        cls.release()
Esempio n. 8
0
def main():
    help_doc = """
    -d      debug | start | stop    debug,start or stop application
    """
    try:
        opts, args = getopt.getopt(sys.argv[1:], "u:m:d:")
    except getopt.GetoptError:
        print(help_doc)
        return
    d = None
    if sys.platform.find("win32") > -1:
        is_windows = True
    else:
        is_windows = False

    for k, v in opts:
        if k == "-d": d = v

    if d not in ("debug", "start", "stop"):
        print(help_doc)
        return

    if is_windows and d in ("start", "stop",):
        sys.stderr.write("windows only support -d start argument")
        return

    if d == "stop":
        pid = proc.get_pid(PID_PATH)
        if pid > 0: os.kill(pid, signal.SIGINT)
        return

    debug = True

    if d == "start":
        if os.path.exists(PID_PATH):
            print("the process s2hss exists,please delete %s or kill it at first" % PID_PATH)
            return
        debug = False
        pid = os.fork()
        if pid != 0: sys.exit(0)

        os.setsid()
        os.umask(0)

        pid = os.fork()
        if pid != 0: sys.exit(0)
        proc.write_pid(PID_PATH)

    cls = serverd()
    try:
        cls.ioloop(debug=debug)
    except KeyboardInterrupt:
        cls.release()
Esempio n. 9
0
def start(debug):
    if not debug:
        pid = os.fork()
        if pid != 0: sys.exit(0)

        os.setsid()
        os.umask(0)

        pid = os.fork()
        if pid != 0: sys.exit(0)

        proc.write_pid(PID_PATH)
    cls = service()
    try:
        cls.ioloop()
    except KeyboardInterrupt:
        cls.release()
        sys.exit(0)
Esempio n. 10
0
def __start_service(debug):
    if not debug:
        pid = os.fork()
        if pid != 0: sys.exit(0)

        os.setsid()
        os.umask(0)
        pid = os.fork()

        if pid != 0: sys.exit(0)
        proc.write_pid(PID_FILE)

    configs = configfile.ini_parse_from_file("fdslight_etc/fn_server.ini")
    cls = _fdslight_server()

    if debug:
        cls.ioloop(debug, configs)
        return
    try:
        cls.ioloop(debug, configs)
    except:
        logging.print_error()
Esempio n. 11
0
def main():
    help_doc = """
    -d      debug | start | stop    debug,start or stop application
    -m      relay | proxy           relay mode,proxy mode or all mode
    -u                              update rule files
    --with-dnsserver                enable DNS server support
    """
    try:
        opts, args = getopt.getopt(sys.argv[1:], "m:d:u", ["with-dnsserver"])
    except getopt.GetoptError as e:
        print(help_doc)
        return

    d = None
    m = None
    u = None
    enable_dns = False

    if sys.platform.find("win32") > -1:
        is_windows = True
    else:
        is_windows = False

    for k, v in opts:
        if k == "-d": d = v
        if k == "-m": m = v
        if k == "-u": u = True
        if k == "--with-dnsserver": enable_dns = True

    if u and (d or m):
        print(help_doc)
        return

    if u and enable_dns:
        print(help_doc)
        return

    if u:
        update_rules()
        return

    if d not in ("debug", "start", "stop"):
        print(help_doc)
        return

    if is_windows and d in ("start", "stop",):
        sys.stderr.write("windows only support -d debug")
        return

    if m not in ("relay", "proxy"):
        print(help_doc)
        return

    if d == "stop":
        pid = proc.get_pid(PID_PATH)
        if pid > 0: os.kill(pid, signal.SIGINT)
        return

    debug = True

    if d == "start":
        if os.path.exists(PID_PATH):
            print("the process s2hsc exists,please delete %s or kill it at first" % PID_PATH)
            return
        debug = False
        pid = os.fork()
        if pid != 0: sys.exit(0)

        os.setsid()
        os.umask(0)

        pid = os.fork()
        if pid != 0: sys.exit(0)

        proc.write_pid(PID_PATH)

    cls = serverd()
    try:
        cls.ioloop(m, with_dnsserver=enable_dns, debug=debug)
    except KeyboardInterrupt:
        cls.release()
Esempio n. 12
0
def main():
    help_doc = """
    debug | start | stop | shutdown
    debug | start | shutdown --port=port
    debug:  windows support it
    start   only unix-like support --bind_ip=bind_ip
    stop    only unix-like support
    shutdown will close all hosts
    """

    if len(sys.argv) < 2:
        print(help_doc)
        return

    action = sys.argv[1]

    if action not in (
            "debug",
            "stop",
            "start",
            "shutdown",
    ):
        print(help_doc)
        return

    if action == "stop":
        stop()
        return

    try:
        opts, args = getopt.getopt(sys.argv[2:], "", ["port=", "bind_ip="])
    except getopt.GetoptError:
        print(help_doc)
        return

    port = None
    bind_ip = None

    for k, v in opts:
        if k == "--port": port = v
        if k == "--bind_ip": bind_ip = v

    if None == port or not bind_ip:
        print(help_doc)
        return

    if not cfg_check.is_port(port):
        sys.stderr.write("wrong port number\r\n")
        return

    debug = True
    if action == "start":
        debug = False
        pid = os.fork()
        if pid != 0: sys.exit(0)

        os.setsid()
        os.umask(0)

        pid = os.fork()
        if pid != 0: sys.exit(0)
        proc.write_pid(PID_PATH)

    port = int(port)
    if action == "shutdown":
        print("send shutdown to all hosts")
        shutdown(bind_ip, port)
        return

    cls = power_monitor(port, debug=debug, bind_ip=bind_ip)
    try:
        cls.monitor()
    except KeyboardInterrupt:
        cls.release()