mirror of https://github.com/midoks/mdserver-web
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
122 lines
2.9 KiB
122 lines
2.9 KiB
# coding:utf-8
|
|
|
|
import sys
|
|
import io
|
|
import os
|
|
import time
|
|
|
|
sys.path.append(os.getcwd() + "/class/core")
|
|
import public
|
|
|
|
app_debug = False
|
|
if public.getOs() == 'darwin':
|
|
app_debug = True
|
|
|
|
|
|
def getPluginName():
|
|
return 'php'
|
|
|
|
|
|
def getPluginDir():
|
|
return public.getPluginDir() + '/' + getPluginName()
|
|
|
|
|
|
def getServerDir():
|
|
return public.getServerDir() + '/' + getPluginName()
|
|
|
|
|
|
def getInitDFile():
|
|
if app_debug:
|
|
return '/tmp/' + getPluginName()
|
|
return '/etc/init.d/' + getPluginName()
|
|
|
|
|
|
def status(version):
|
|
data = public.execShell(
|
|
"ps -ef|grep php |grep -v grep | grep -v python | awk '{print $2}'")
|
|
if data[0] == '':
|
|
return 'stop'
|
|
return 'start'
|
|
|
|
|
|
def start(version):
|
|
path = os.path.dirname(os.getcwd())
|
|
cmd = path + "/redis/bin/redis-server"
|
|
cmd = cmd + " " + path + "/redis/redis.conf"
|
|
data = public.execShell(cmd)
|
|
if data[0] == '':
|
|
return 'ok'
|
|
return 'fail'
|
|
|
|
|
|
def stop():
|
|
data = public.execShell(
|
|
"ps -ef|grep redis |grep -v grep |grep -v python |awk '{print $2}' | xargs kill -9")
|
|
if data[0] == '':
|
|
return 'ok'
|
|
return 'fail'
|
|
|
|
|
|
def restart():
|
|
return 'ok'
|
|
|
|
|
|
def reload():
|
|
return 'ok'
|
|
|
|
|
|
def runInfo():
|
|
path = os.path.dirname(os.getcwd())
|
|
cmd = path + "/redis/bin/redis-cli info"
|
|
data = public.execShell(cmd)[0]
|
|
res = [
|
|
'tcp_port',
|
|
'uptime_in_days', # 已运行天数
|
|
'connected_clients', # 连接的客户端数量
|
|
'used_memory', # Redis已分配的内存总量
|
|
'used_memory_rss', # Redis占用的系统内存总量
|
|
'used_memory_peak', # Redis所用内存的高峰值
|
|
'mem_fragmentation_ratio', # 内存碎片比率
|
|
'total_connections_received', # 运行以来连接过的客户端的总数量
|
|
'total_commands_processed', # 运行以来执行过的命令的总数量
|
|
'instantaneous_ops_per_sec', # 服务器每秒钟执行的命令数量
|
|
'keyspace_hits', # 查找数据库键成功的次数
|
|
'keyspace_misses', # 查找数据库键失败的次数
|
|
'latest_fork_usec' # 最近一次 fork() 操作耗费的毫秒数
|
|
]
|
|
data = data.split("\n")
|
|
result = {}
|
|
for d in data:
|
|
if len(d) < 3:
|
|
continue
|
|
t = d.strip().split(':')
|
|
if not t[0] in res:
|
|
continue
|
|
result[t[0]] = t[1]
|
|
return public.getJson(result)
|
|
|
|
|
|
def getConf():
|
|
path = os.path.dirname(os.getcwd()) + "/redis/redis.conf"
|
|
return path
|
|
|
|
if __name__ == "__main__":
|
|
func = sys.argv[1]
|
|
version = sys.argv[2]
|
|
|
|
if func == 'status':
|
|
print status(version)
|
|
elif func == 'start':
|
|
print start()
|
|
elif func == 'stop':
|
|
print stop()
|
|
elif func == 'restart':
|
|
print restart()
|
|
elif func == 'reload':
|
|
print reload()
|
|
elif func == 'run_info':
|
|
print runInfo()
|
|
elif func == 'conf':
|
|
print getConf()
|
|
else:
|
|
print "fail"
|
|
|