diff --git a/electron/addon/javaServer/index.js b/electron/addon/javaServer/index.js index eca6063..14be9dd 100644 --- a/electron/addon/javaServer/index.js +++ b/electron/addon/javaServer/index.js @@ -45,7 +45,16 @@ class JavaServerAddon { * @since 1.0.0 */ async check () { + Log.info("进入-----检查服务是否启动------"+this.javaServer); + if(this.javaServer == undefined){ + Log.info("[addon:javaServer:check] status-----------"+false); + return false; + } + const flag = await this.javaServer.isRun(Conf.getValue('addons.javaServer')); + Log.info("[addon:javaServer:check] status-----------"+flag); + + return flag; } /** diff --git a/electron/addon/javaServer/server.js b/electron/addon/javaServer/server.js index 6f2d97c..8e162e2 100644 --- a/electron/addon/javaServer/server.js +++ b/electron/addon/javaServer/server.js @@ -95,6 +95,32 @@ class JavaServer { // todo linux } } + + /** + * 服务是否运行中 + */ + async isRun(cfg){ + const jarName = cfg.name; + if (is.windows()) { + const resultList = ps.lookup({ + command: "java", + where: 'caption="javaw.exe"', + arguments: jarName, + }); + + Log.info("[addon:javaServer] resultList:", resultList); + return resultList.length>0; + } else if (is.macOS()) { + const cmd = `ps -ef | grep java | grep ${jarName} | grep -v grep | awk '{print $2}' `; + Log.info("[addon:javaServer:isRun] cmdStr:", cmd); + const result = execSync(cmd); + Log.info('[addon:javaServer:isRun] result:', result.toString()); + //不等于空说明正在运行 + return result.toString()!=="" + } else { + // todo linux + } + } } module.exports = JavaServer; \ No newline at end of file diff --git a/electron/controller/framework.js b/electron/controller/framework.js index 7ee327d..acc9fa2 100644 --- a/electron/controller/framework.js +++ b/electron/controller/framework.js @@ -298,6 +298,22 @@ class FrameworkController extends Controller { return data; } + /** + * java运行状态 + */ + async runStatus() { + let data = { + code: 0, + msg: '', + flag: false + } + const flag = await Addon.get('javaServer').check(); + //Log.info("[FrameworkController:runStatus] flag-----------"+flag); + data.flag = flag; + + return data; + } + /** * 任务 */