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()
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)
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()
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)
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)
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)
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()
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()
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)
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()
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()
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()