2727from admin import app
2828from admin import model
2929
30+ import thisdb
3031import core .mw as mw
3132import core .db as db
3233
33-
34- global pre , timeoutCount , logPath , isTask , oldEdate , isCheck
35- pre = 0
36- timeoutCount = 0
37- isCheck = 0
38- oldEdate = None
39-
4034g_log_file = mw .getPanelTaskLog ()
4135isTask = mw .getMWLogs () + '/panelTask.pl'
4236
4337if not os .path .exists (g_log_file ):
4438 os .system ("touch " + g_log_file )
4539
4640def execShell (cmdstring , cwd = None , timeout = None , shell = True ):
47- try :
48- global g_log_file
49- import shlex
50- import datetime
51- import subprocess
52-
53- if timeout :
54- end_time = datetime .datetime .now () + datetime .timedelta (seconds = timeout )
55-
56- cmd = cmdstring + ' > ' + g_log_file + ' 2>&1'
57- sub = subprocess .Popen (cmd , cwd = cwd , stdin = subprocess .PIPE , shell = shell , bufsize = 4096 )
58- while sub .poll () is None :
59- time .sleep (0.1 )
60-
61- data = sub .communicate ()
62- # python3 fix 返回byte数据
63- if isinstance (data [0 ], bytes ):
64- t1 = str (data [0 ], encoding = 'utf-8' )
65-
66- if isinstance (data [1 ], bytes ):
67- t2 = str (data [1 ], encoding = 'utf-8' )
68- return (t1 , t2 )
69- except Exception as e :
70- return (None , None )
41+ cmd = cmdstring + ' > ' + g_log_file + ' 2>&1'
42+ return mw .execShell (cmd )
7143
7244def service_cmd (method ):
7345 cmd = '/etc/init.d/mw'
@@ -76,37 +48,12 @@ def service_cmd(method):
7648 return
7749
7850 cmd = mw .getPanelDir () + '/scripts/init.d/mw'
79- print (cmd )
8051 if os .path .exists (cmd ):
8152 print (cmd + ' ' + method )
8253 data = execShell (cmd + ' ' + method )
8354 print (data )
8455 return
8556
86-
87- def openresty_cmd (method = 'reload' ):
88- # 检查是否安装
89- odir = mw .getServerDir () + '/openresty'
90- if not os .path .exists (odir ):
91- return False
92-
93- # systemd
94- systemd = mw .systemdCfgDir ()+ '/openresty.service'
95- if os .path .exists (systemd ):
96- execShell ('systemctl ' + method + ' openresty' )
97- return True
98-
99- sys_initd = '/etc/init.d/openresty'
100- if os .path .exists (sys_initd ):
101- os .system (sys_initd + ' ' + method )
102- return True
103-
104- install_initd = mw .getServerDir ()+ '/openresty/init.d/openresty'
105- if os .path .exists (install_initd ):
106- os .system (install_initd + ' ' + method )
107- return True
108- return False
109-
11057def mw_async (f ):
11158 def wrapper (* args , ** kwargs ):
11259 thr = threading .Thread (target = f , args = args , kwargs = kwargs )
@@ -225,8 +172,8 @@ def siteEdate():
225172
226173
227174def systemTask ():
228- from utils .system import monitor
229175 # 系统监控任务
176+ from utils .system import monitor
230177 try :
231178 while True :
232179 monitor .instance ().run ()
@@ -240,10 +187,11 @@ def systemTask():
240187# 502错误检查线程
241188def check502Task ():
242189 try :
190+ check_file = mw .getPanelDir () + '/data/502Task.pl'
243191 while True :
244- if os .path .exists (mw . getPanelDir () + '/data/502Task.pl' ):
192+ if os .path .exists (check_file ):
245193 check502 ()
246- time .sleep (30 )
194+ time .sleep (10 )
247195 except :
248196 time .sleep (30 )
249197 check502Task ()
@@ -257,22 +205,23 @@ def check502():
257205 '82' , '83' , '84'
258206 ]
259207 for ver in verlist :
260- sdir = mw .getServerDir ()
261- php_path = sdir + '/php/' + ver + '/sbin/php-fpm'
208+ server_dir = mw .getServerDir ()
209+ php_path = server_dir + '/php/' + ver + '/sbin/php-fpm'
262210 if not os .path .exists (php_path ):
263211 continue
264212 if checkPHPVersion (ver ):
265213 continue
266214 if startPHPVersion (ver ):
267215 print ('检测到PHP-' + ver + '处理异常,已自动修复!' )
268216 mw .writeLog ('PHP守护程序' , '检测到PHP-' + ver + '处理异常,已自动修复!' )
217+
269218 except Exception as e :
270- print ( str (e ))
219+ mw . writeLog ( 'PHP守护程序' , '自动修复异常:' + str (e ))
271220
272221
273222# 处理指定PHP版本
274223def startPHPVersion (version ):
275- sdir = mw .getServerDir ()
224+ server_dir = mw .getServerDir ()
276225 try :
277226 # system
278227 phpService = mw .systemdCfgDir () + '/php' + version + '.service'
@@ -282,8 +231,8 @@ def startPHPVersion(version):
282231 return True
283232
284233 # initd
285- fpm = sdir + '/php/init.d/php' + version
286- php_path = sdir + '/php/' + version + '/sbin/php-fpm'
234+ fpm = server_dir + '/php/init.d/php' + version
235+ php_path = server_dir + '/php/' + version + '/sbin/php-fpm'
287236 if not os .path .exists (php_path ):
288237 if os .path .exists (fpm ):
289238 os .remove (fpm )
@@ -296,7 +245,6 @@ def startPHPVersion(version):
296245 os .system (fpm + ' reload' )
297246 if checkPHPVersion (version ):
298247 return True
299-
300248 # 尝试重启服务
301249 cgi = '/tmp/php-cgi-' + version + '.sock'
302250 pid = sdir + '/php/' + version + '/var/run/php-fpm.pid'
@@ -316,47 +264,18 @@ def startPHPVersion(version):
316264 if os .path .exists (cgi ):
317265 return True
318266 except Exception as e :
319- print ( str (e ))
267+ mw . writeLog ( 'PHP守护程序' , '自动修复异常:' + str (e ))
320268 return True
321269
322270
323- def getFpmConfFile (version ):
324- return mw .getServerDir () + '/php/' + version + '/etc/php-fpm.d/www.conf'
325-
326-
327- def getFpmAddress (version ):
328- fpm_address = '/tmp/php-cgi-{}.sock' .format (version )
329- php_fpm_file = getFpmConfFile (version )
330- try :
331- content = readFile (php_fpm_file )
332- tmp = re .findall (r"listen\s*=\s*(.+)" , content )
333- if not tmp :
334- return fpm_address
335- if tmp [0 ].find ('sock' ) != - 1 :
336- return fpm_address
337- if tmp [0 ].find (':' ) != - 1 :
338- listen_tmp = tmp [0 ].split (':' )
339- if bind :
340- fpm_address = (listen_tmp [0 ], int (listen_tmp [1 ]))
341- else :
342- fpm_address = ('127.0.0.1' , int (listen_tmp [1 ]))
343- else :
344- fpm_address = ('127.0.0.1' , int (tmp [0 ]))
345- return fpm_address
346- except :
347- return fpm_address
348-
349-
350271def checkPHPVersion (version ):
351272 # 检查指定PHP版本
352273 try :
353- sock = getFpmAddress (version )
274+ sock = mw . getFpmAddress (version )
354275 data = mw .requestFcgiPHP (sock , '/phpfpm_status_' + version + '?json' )
355276 result = str (data , encoding = 'utf-8' )
356277 except Exception as e :
357278 result = 'Bad Gateway'
358-
359- # print(version,result)
360279 # 检查openresty
361280 if result .find ('Bad Gateway' ) != - 1 :
362281 return False
@@ -366,24 +285,9 @@ def checkPHPVersion(version):
366285 # 检查Web服务是否启动
367286 if result .find ('Connection refused' ) != - 1 :
368287 return False
369- # global isTask
370- # if os.path.exists(isTask):
371- # isStatus = mw.readFile(isTask)
372- # if isStatus == 'True':
373- # return True
374-
375- # # systemd
376- # systemd = mw.systemdCfgDir() + '/openresty.service'
377- # if os.path.exists(systemd):
378- # execShell('systemctl reload openresty')
379- # return True
380- # # initd
381- # initd = '/etc/init.d/openresty'
382- # if os.path.exists(initd):
383- # os.system(initd + ' reload')
384288 return True
385289
386- # --------------------------------------PHP监控 end--------------------------------------------- #
290+ # -------------------------------------- PHP监控 end --------------------------------------------- #
387291
388292
389293# --------------------------------------OpenResty Auto Restart Start --------------------------------------------- #
@@ -396,11 +300,10 @@ def openrestyAutoRestart():
396300 if not os .path .exists (odir ):
397301 time .sleep (86400 )
398302 continue
399-
400- openresty_cmd ('reload' )
303+ mw .opWeb ('reload' )
401304 time .sleep (86400 )
402305 except Exception as e :
403- print ( str (e ))
306+ mw . writeLog ( 'OpenResty检测' , '自动修复异常:' + str (e ))
404307 time .sleep (86400 )
405308
406309# --------------------------------------OpenResty Auto Restart End --------------------------------------------- #
@@ -409,11 +312,11 @@ def openrestyAutoRestart():
409312
410313
411314def openrestyRestartAtOnce ():
412- restart_nginx_tip = ' data/restart_nginx.pl'
315+ restart_nginx_tip = mw . getPanelDir () + '/ data/restart_nginx.pl'
413316 while True :
414317 if os .path .exists (restart_nginx_tip ):
415318 os .remove (restart_nginx_tip )
416- openresty_cmd ('reload' )
319+ mw . opWeb ('reload' )
417320 time .sleep (1 )
418321# ----------------------------------- OpenResty Restart At Once End ------------------------------------------ #
419322
@@ -424,7 +327,7 @@ def restartPanelService():
424327 while True :
425328 if os .path .exists (restartTip ):
426329 os .remove (restartTip )
427- service_cmd ('restart_panel' )
330+ mw . panelCmd ('restart_panel' )
428331 time .sleep (1 )
429332# --------------------------------------Panel Restart End --------------------------------------------- #
430333
@@ -443,20 +346,20 @@ def run():
443346 sysTask .start ()
444347
445348 # # PHP 502错误检查线程
446- # php502 = threading.Thread(target=check502Task)
447- # php502 = setDaemon(php502)
448- # php502.start()
349+ php502 = threading .Thread (target = check502Task )
350+ php502 = setDaemon (php502 )
351+ php502 .start ()
449352
450- # # OpenResty Restart At Once Start
451- # oraos = threading.Thread(target=openrestyRestartAtOnce)
452- # oraos = setDaemon(oraos)
453- # oraos.start()
353+ # OpenResty Restart At Once Start
354+ oraos = threading .Thread (target = openrestyRestartAtOnce )
355+ oraos = setDaemon (oraos )
356+ oraos .start ()
454357
455358
456- # # OpenResty Auto Restart Start
457- # oar = threading.Thread(target=openrestyAutoRestart)
458- # oar = setDaemon(oar)
459- # oar.start()
359+ # OpenResty Auto Restart Start
360+ oar = threading .Thread (target = openrestyAutoRestart )
361+ oar = setDaemon (oar )
362+ oar .start ()
460363
461364
462365 # Panel Restart Start
0 commit comments