From cf2167400ac6023c885ed79f76d4005194433bfc Mon Sep 17 00:00:00 2001 From: Mr Chen Date: Thu, 28 Feb 2019 11:54:42 +0800 Subject: [PATCH] pm2 ok --- plugins/l2tp/install.sh | 23 +++++++++++------ plugins/pm2/index.py | 50 +++++++++++++++++++++++++++++++++++ plugins/pm2/js/pm2.js | 33 +++++++++++++++++------- route/static/app/public.js | 53 ++++++++++++++++++++++++++++++++++++++ 4 files changed, 142 insertions(+), 17 deletions(-) diff --git a/plugins/l2tp/install.sh b/plugins/l2tp/install.sh index 6f16b3bf5..42cdc4096 100755 --- a/plugins/l2tp/install.sh +++ b/plugins/l2tp/install.sh @@ -11,25 +11,32 @@ serverPath=$(dirname "$rootPath") install_tmp=${rootPath}/tmp/bt_install.pl -npm install pm2 -g -Install_pm2() +Install_l2tp() { + isStart="" + while [[ "$isStart" == "" ]]; + do + echo -e ".\c" + sleep 0.5 + startTime=`date +%s` + echo $startTime,'end' + done echo '正在安装脚本文件...' > $install_tmp - mkdir -p $serverPath/pm2 - echo '1.0' > $serverPath/pm2/version.pl + mkdir -p $serverPath/l2tp + echo '1.0' > $serverPath/l2tp/version.pl echo '安装完成' > $install_tmp } -Uninstall_pm2() +Uninstall_l2tp() { - rm -rf $serverPath/pm2 + rm -rf $serverPath/l2tp echo "卸载完成" > $install_tmp } action=$1 if [ "${1}" == 'install' ];then - Install_pm2 + Install_l2tp else - Uninstall_pm2 + Uninstall_l2tp fi diff --git a/plugins/pm2/index.py b/plugins/pm2/index.py index 749088561..7680a8869 100755 --- a/plugins/pm2/index.py +++ b/plugins/pm2/index.py @@ -301,6 +301,48 @@ def uninstallMod(): return public.returnJson(True, '卸载成功!') +def nodeLogRun(): + args = getArgs() + data = checkArgs(args, ['pname']) + if not data[0]: + return data[1] + + pname = args['pname'] + return pm2LogDir() + '/logs/' + pname + '-out.log' + + +def nodeLogErr(): + args = getArgs() + data = checkArgs(args, ['pname']) + if not data[0]: + return data[1] + + pname = args['pname'] + return pm2LogDir() + '/logs/' + pname + '-error.log' + + +def nodeLogClearRun(): + args = getArgs() + data = checkArgs(args, ['pname']) + if not data[0]: + return data[1] + + pname = args['pname'] + path = pm2LogDir() + '/logs/' + pname + '-out.log' + public.execShell('rm -rf ' + path + '&& touch ' + path) + return public.returnJson(True, '清空运行成功') + + +def nodeLogClearErr(): + args = getArgs() + data = checkArgs(args, ['pname']) + if not data[0]: + return data[1] + pname = args['pname'] + path = pm2LogDir() + '/logs/' + pname + '-error.log' + public.execShell('rm -rf ' + path + '&& touch ' + path) + return public.returnJson(True, '清空错误成功') + if __name__ == "__main__": func = sys.argv[1] if func == 'status': @@ -321,6 +363,14 @@ if __name__ == "__main__": print pm2Start() elif func == 'get_logs': print pm2Log() + elif func == 'node_log_run': + print nodeLogRun() + elif func == 'node_log_err': + print nodeLogErr() + elif func == 'node_log_clear_run': + print nodeLogClearRun() + elif func == 'node_log_clear_err': + print nodeLogClearErr() elif func == 'versions': print pm2VerList() elif func == 'set_node_version': diff --git a/plugins/pm2/js/pm2.js b/plugins/pm2/js/pm2.js index f4445ae94..fd2609868 100755 --- a/plugins/pm2/js/pm2.js +++ b/plugins/pm2/js/pm2.js @@ -279,12 +279,18 @@ function nodeStart(pname){ }); } +function pm2RollingLogs(func,pname){ + var args = {'pname':pname} + _args = JSON.stringify(args); + pluginRollingLogs('pm2','',func, _args); +} + function nodeLog(pname){ var html = ''; - html += ''; - html += ''; - html += ''; - html += ''; + html += ''; + html += ''; + html += ''; + html += ''; var loadOpen = layer.open({ type: 1, @@ -295,9 +301,18 @@ function nodeLog(pname){ } -function nodeLogError(pname){ - - - +function nodeLogClearRun(pname){ + var data = 'pname=' + pname; + pm2Post('node_log_clear_run', data, function(data){ + var rdata = $.parseJSON(data.data); + layer.msg(rdata.msg,{icon:rdata.status?1:2}); + }); +} -} \ No newline at end of file +function nodeLogClearError(pname){ + var data = 'pname=' + pname; + pm2Post('node_log_clear_err', data, function(data){ + var rdata = $.parseJSON(data.data); + layer.msg(rdata.msg,{icon:rdata.status?1:2}); + }); +} \ No newline at end of file diff --git a/route/static/app/public.js b/route/static/app/public.js index 92b5e815d..aa3b68d6b 100755 --- a/route/static/app/public.js +++ b/route/static/app/public.js @@ -1852,6 +1852,59 @@ function pluginLogs(_name, version, func, line){ },'json'); },'json'); } + + +function pluginRollingLogs(_name, version, func, _args, line){ + if ( typeof(version) == 'undefined' ){ + version = ''; + } + + var func_name = 'error_log'; + if ( typeof(func) != 'undefined' ){ + func_name = func; + } + + var file_line = 100; + if ( typeof(line) != 'undefined' ){ + file_line = line; + } + + var reqTimer = null; + + layer.open({ + type: 1, + title: _name + '日志', + area: '640px', + end: function(){ + // console.log('end!!!'); + if (reqTimer){ + clearInterval(reqTimer); + } + }, + content:'
\ + \ +
' + }); + + $.post('/plugins/run', {name:_name, func:func_name, version:version,args:_args},function (data) { + var fileName = data.data; + reqTimer = setInterval(function(){ + $.post('/files/get_last_body', 'path=' + fileName+'&line='+file_line, function(rdata) { + if (!rdata.status){ + return; + } + + if(rdata.data == '') { + rdata.data = '当前没有日志!'; + } + var ebody = ''; + $("#plugins_rolling_logs").html(ebody); + var ob = document.getElementById('roll_info_log'); + ob.scrollTop = ob.scrollHeight; + },'json'); + },1000); + },'json'); +} /*** 其中功能,针对插件通过库使用 end ***/