From 778cde15e534dcb350f1354de6ebae88f279414e Mon Sep 17 00:00:00 2001
From: 田源 <lastanimals@163.com>
Date: 星期五, 08 三月 2024 10:15:51 +0800
Subject: [PATCH] Merge remote-tracking branch 'origin/master'
---
Source/UBCS/ubcs-service/ubcs-deploy/src/main/java/com/vci/ubcs/deploy/service/impl/DeployAppsServiceImpl.java | 46 +++++++++++++++++++++++++++++++++++-----------
1 files changed, 35 insertions(+), 11 deletions(-)
diff --git a/Source/UBCS/ubcs-service/ubcs-deploy/src/main/java/com/vci/ubcs/deploy/service/impl/DeployAppsServiceImpl.java b/Source/UBCS/ubcs-service/ubcs-deploy/src/main/java/com/vci/ubcs/deploy/service/impl/DeployAppsServiceImpl.java
index af4bb01..7785b88 100644
--- a/Source/UBCS/ubcs-service/ubcs-deploy/src/main/java/com/vci/ubcs/deploy/service/impl/DeployAppsServiceImpl.java
+++ b/Source/UBCS/ubcs-service/ubcs-deploy/src/main/java/com/vci/ubcs/deploy/service/impl/DeployAppsServiceImpl.java
@@ -15,6 +15,7 @@
import com.vci.ubcs.deploy.service.IDeployAppsService;
import com.vci.ubcs.deploy.vo.DeployAppsVO;
import com.vci.ubcs.starter.util.HttpUtils;
+import jodd.io.StreamGobbler;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springblade.core.secure.utils.AuthUtil;
@@ -39,7 +40,9 @@
import javax.servlet.ServletRequest;
import javax.servlet.http.HttpServletRequest;
import java.io.*;
+import java.net.InetAddress;
import java.net.URL;
+import java.nio.charset.StandardCharsets;
import java.nio.file.Files;
import java.nio.file.Path;
import java.nio.file.Paths;
@@ -179,12 +182,12 @@
}
// 鏈粠搴撲腑鏌ヨ鍒帮紝闇�瑕佺敓鎴愭湇鍔′俊鎭繚瀛橀粯璁や俊鎭埌搴撲腑
DeployApps defaultDeployApps = new DeployApps();
- defaultDeployApps.setLogPath(PARENTPATH + deployAppsVO.getName().replace("-","_") + LOGPATH);
+ defaultDeployApps.setLogPath(PARENTPATH + SEPARATOR + deployAppsVO.getName().replace("-","_") + LOGPATH);
defaultDeployApps.setServerName(deployAppsVO.getName());
defaultDeployApps.setStartCmd(CmdConfigEnum.START_CMD.getValue() + deployAppsVO.getName());
defaultDeployApps.setStopCmd(CmdConfigEnum.STOP_CMD.getValue() + deployAppsVO.getName());
defaultDeployApps.setRestartCmd(CmdConfigEnum.RESTART_CMD.getValue() + deployAppsVO.getName());
- defaultDeployApps.setServerPath(PARENTPATH + deployAppsVO.getName().replace("-","_"));
+ defaultDeployApps.setServerPath(PARENTPATH + SEPARATOR + deployAppsVO.getName().replace("-","_"));
int eft = deployAppsMapper.insert(defaultDeployApps);
if (!SqlHelper.retBool(eft)) {
throw new ServiceException("鐢熸垚榛樿鏈嶅姟淇℃伅鍒板簱涓椂澶辫触锛�");
@@ -228,7 +231,7 @@
* @return
*/
@Override
- public R importClassify(MultipartFile[] files, String serverName) throws ServiceException {
+ public R importJarUpdate(MultipartFile[] files, String serverName) throws ServiceException {
// 鏍规嵁鏈嶅姟鍚嶆煡鐪嬪埌鏈嶅姟鐩稿叧淇℃伅
List<DeployApps> deployAppsDB = deployAppsMapper.selectList(Wrappers.<DeployApps>query().lambda().eq(DeployApps::getServerName, serverName));
if(deployAppsDB.isEmpty()){
@@ -297,7 +300,7 @@
file1.delete();
}
}
- String output = excute(deployAppsDB.get(0),"UP");
+ String output = execute(deployAppsDB.get(0),"UP");
return R.success(output.toString());
} catch (IOException e) {
e.printStackTrace();
@@ -320,7 +323,7 @@
if(deployAppsDB.isEmpty()){
return R.fail("鍛戒护鎵ц鍑洪敊锛屽簱涓湭鎵惧埌"+ deployAppsVO.getName() +"鏈嶅姟鐩稿叧閰嶇疆锛�" );
}
- excuteRes = excute(deployAppsDB.get(0),deployAppsVO.getStatus());
+ excuteRes = execute(deployAppsDB.get(0),deployAppsVO.getStatus());
return R.success("鍛戒护鎵ц缁撴潫锛�"+excuteRes);
}catch (Exception e){
throw new ServiceException(e.getMessage());
@@ -333,7 +336,7 @@
* @return
* @throws ServiceException
*/
- private String excute(DeployApps deployApps,String type) throws ServiceException {
+ public String execute(DeployApps deployApps,String type) throws ServiceException {
// 澶勭悊涓婁紶鏂囦欢鐨勯�昏緫
StringBuilder output = new StringBuilder();
try {
@@ -348,16 +351,37 @@
}
// 鎵цLinux鍛戒护
log.info("寮�濮嬫墽琛屽懡浠わ細"+cmd);
- Process process = Runtime.getRuntime().exec(cmd);
+ // Process process = Runtime.getRuntime().exec(cmd);
+ ProcessBuilder processBuilder = new ProcessBuilder(cmd.split("\\s"));
+ // processBuilder.command(cmd);
+ Process process = processBuilder.start();
+ // 绛夊緟鍛戒护鎵ц瀹屾垚
+ int exitCode = process.waitFor();
+
+ InputStream inputStream = process.getInputStream();
+ OutputStream outputStream = process.getOutputStream();
+ InputStream errorStream = process.getErrorStream();
// 璇诲彇鍛戒护鎵ц缁撴灉
- BufferedReader reader = new BufferedReader(new InputStreamReader(process.getInputStream()));
+ BufferedReader reader = new BufferedReader(new InputStreamReader(inputStream));
String line;
while ((line = reader.readLine()) != null) {
output.append(line).append("\n");
}
- // 绛夊緟鍛戒护鎵ц瀹屾垚
- int exitCode = process.waitFor();
- log.info("鍛戒护鎵ц缁撴灉锛�" + output.toString()+":"+exitCode);
+ reader.close();
+
+ // 璇诲彇鍛戒护鎵ц鐨勯敊璇緭鍑烘祦
+ BufferedReader errorReader = new BufferedReader(new InputStreamReader(errorStream));
+ StringBuilder errorOutput = new StringBuilder();
+ String errorLine;
+ while ((errorLine = errorReader.readLine()) != null) {
+ errorOutput.append(errorLine).append("\n");
+ }
+ String errorOutputString = errorOutput.toString();
+ errorReader.close();
+
+ log.info("閿欒杈撳嚭锛�" + errorOutputString);
+ int exitValue = process.exitValue();
+ log.info("鍛戒护鎵ц缁撴灉锛�" + output.toString()+":"+exitCode+","+exitValue);
return output.toString();
}catch (IOException | InterruptedException e){
e.printStackTrace();
--
Gitblit v1.9.3