虚拟机重启命令

segment2.0
linrf 2 years ago
parent c3a6a74d6f
commit 09db707b8b

@ -5,7 +5,6 @@ import com.docus.core.util.Func;
import com.docus.core.util.ListUtils;
import com.docus.core.util.json.JSON;
import com.docus.server.common.CommMsg;
import com.docus.server.common.MsgConstants;
import com.docus.server.common.netty.client.NettyClient;
import com.docus.server.common.netty.server.CollectorChannelCacheMap;
import com.docus.server.common.utils.StartUpExeUtils;
@ -20,13 +19,13 @@ import lombok.AllArgsConstructor;
import lombok.NoArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import java.io.IOException;
import java.io.Serializable;
import java.util.Date;
import java.util.List;
import java.util.Map;
import static com.docus.server.common.MsgConstants.COLLECTOR_RESTART;
import static com.docus.server.common.MsgConstants.HAS_COLLECTOR_COUNT;
import static com.docus.server.common.MsgConstants.*;
@Slf4j
@AllArgsConstructor
@ -45,28 +44,28 @@ public class ClientHandler extends SimpleChannelInboundHandler<CommMsg<Serializa
log.info("======== 【终端客户端-收到调度器消息】, 消息时间={}, 消息类型={}, 消息内容={}", messageTime, messageType, messageContent + " ======== ");
switch (messageType) {
case MsgConstants.TERMINATOR_RESTART:
case TERMINATOR_RESTART:
terminatorRestart(messageContent);
break;
case MsgConstants.COLLECTOR_RESTART:
case COLLECTOR_RESTART:
collectorRestart(messageContent);
break;
case MsgConstants.VIRTUAL_RESTART:
case VIRTUAL_RESTART:
virtualRestart(messageContent);
break;
case MsgConstants.UPDATE_COLLECTOR_FILE:
case UPDATE_COLLECTOR_FILE:
updateCollectorFile(messageContent);
break;
case MsgConstants.UPDATE_COLLECTOR_CONFIG:
case UPDATE_COLLECTOR_CONFIG:
updateCollectorConfig(messageContent);
break;
case MsgConstants.SCH_DISTRIBUTE_TASKS:
case SCH_DISTRIBUTE_TASKS:
schDistributeTasks(commMsg, messageContent);
break;
case MsgConstants.HAS_VALID_COLLECTOR:
case HAS_VALID_COLLECTOR:
hasValidCollector(messageContent);
break;
case MsgConstants.HAS_COLLECTOR_COUNT:
case HAS_COLLECTOR_COUNT:
hasCollectorCount(context, messageContent);
break;
default:
@ -162,8 +161,15 @@ public class ClientHandler extends SimpleChannelInboundHandler<CommMsg<Serializa
log.info("【终端客户端-收到调度器消息】收到更新采集器文件命令,内容={}", messageContent);
}
private void virtualRestart(String messageContent) {
private void virtualRestart(String messageContent) throws IOException {
log.info("【终端客户端-收到调度器消息】收到虚拟机重启命令,内容={}", messageContent);
StartUpExeUtils.restartComputer();
CommMsg<Serializable> collectorRestartMsg = CommMsg.builder()
.content("重启虚拟机,操作成功!")
.messageTime(DateUtil.formatDateTime(new Date()))
.messageType(VIRTUAL_RESTART)
.build();
nettyClient.getCollectorChannelCacheMap().writeAndFlush(messageContent, collectorRestartMsg);
}
private void collectorRestart(String messageContent) {
@ -186,7 +192,7 @@ public class ClientHandler extends SimpleChannelInboundHandler<CommMsg<Serializa
if (isExistProcess) {
boolean result = StartUpExeUtils.startUpExe(saveCollectorPackagePath + collectorId + "\\collector\\" + processName, processName);
CommMsg<Serializable> collectorRestartMsg = CommMsg.builder()
CommMsg<Serializable> collectorRestartMsg = CommMsg.builder()
.content(result)
.messageTime(DateUtil.formatDateTime(new Date()))
.messageType(COLLECTOR_RESTART)

@ -10,11 +10,17 @@ public class StartUpExeUtils {
// startUpExeOnly("H:\\tools\\Navicat Premium 12免安装\\Navicat Premium 12\\navicat.exe");
// killExeOnly("navicat.exe");
startUpExe("H:\\tools\\Navicat Premium 12免安装\\Navicat Premium 12\\navicat.exe", "navicat.exe");
// startUpExe("H:\\tools\\Navicat Premium 12免安装\\Navicat Premium 12\\navicat.exe", "navicat.exe");
restartComputer();
}
private static boolean startExeStatus = true;//exe启动状态
//重启虚拟机
public static void restartComputer() throws IOException {
Runtime.getRuntime().exec("shutdown /r /t 0");
}
//仅启动exe客户端不检查进程
public static void startUpExeOnly(String exePath) throws IOException {
if (exePath != "") {

Loading…
Cancel
Save