def panel_status(): time.sleep(1) panel_pid = get_panel_pid() while True: time.sleep(5) if not panel_pid: panel_pid = get_panel_pid() if not panel_pid: service_panel('start') try: f = Process(panel_pid).cmdline()[-1] if f.find('runserver') == -1 and f.find('BT-Panel') == -1: service_panel('start') time.sleep(3) panel_pid = get_panel_pid() continue except: service_panel('start') time.sleep(3) panel_pid = get_panel_pid() continue
def panel_status(): time.sleep(1) panel_path = '/www/server/panel' pool = 'http://' if os.path.exists(panel_path + '/data/ssl.pl'): pool = 'https://' port = '8888' if os.path.exists(panel_path + '/data/port.pl'): port = public.readFile(panel_path + '/data/port.pl').strip() panel_url = pool + '127.0.0.1:' + port + '/service_status' panel_pid = get_panel_pid() n = 0 s = 0 v = 0 while True: time.sleep(5) check_session() if not panel_pid: panel_pid = get_panel_pid() if not panel_pid: service_panel('start') try: f = Process(panel_pid).cmdline()[-1] if f.find('runserver') == -1 and f.find('BT-Panel') == -1: service_panel('start') time.sleep(3) panel_pid = get_panel_pid() continue except: service_panel('start') time.sleep(3) panel_pid = get_panel_pid() continue n += 1 v += 1 if v > 10: v = 0 log_path = panel_path + '/logs/error.log' if os.path.exists(log_path): e_body = public.GetNumLines(log_path, 10) if e_body: if e_body.find( 'PyWSGIServer.do_close') != -1 or e_body.find( 'Expected GET method:') != -1 or e_body.find( 'Invalid HTTP method:' ) != -1 or e_body.find('table session') != -1: result = HttpGet(panel_url) if result != 'True': if e_body.find('table session') != -1: sess_file = '/dev/shm/session.db' if os.path.exists(sess_file): os.remove(sess_file) public.ExecShell( "bash /www/server/panel/init.sh reload &") time.sleep(10) result = HttpGet(panel_url) if result == 'True': public.WriteLog('守护程序', '检查到面板服务异常,已自动恢复!') if n > 18000: n = 0 result = HttpGet(panel_url) if result == 'True': time.sleep(10) continue update_panel() result = HttpGet(panel_url) if result == 'True': public.WriteLog('守护程序', '检查到面板服务异常,已自动恢复!') time.sleep(10) continue