Skip to content

Commit 60ac239

Browse files
committed
Merge branch 'monitor-socket' of https://github.com/roman-yepishev-enoc/zkui into roman-yepishev-enoc-monitor-socket
2 parents 63a904c + 81c9e43 commit 60ac239

File tree

2 files changed

+11
-6
lines changed

2 files changed

+11
-6
lines changed

src/main/java/com/deem/zkui/controller/Monitor.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -58,7 +58,7 @@ protected void doGet(HttpServletRequest request, HttpServletResponse response) t
5858
templateParam.put("stats", stats);
5959
ServletUtil.INSTANCE.renderHtml(request, response, templateParam, "monitor.ftl.html");
6060

61-
} catch (IOException | InterruptedException | TemplateException ex) {
61+
} catch (IOException | TemplateException ex) {
6262
logger.error(Arrays.toString(ex.getStackTrace()));
6363
ServletUtil.INSTANCE.renderError(request, response, ex.getMessage());
6464
}

src/main/java/com/deem/zkui/utils/CmdUtil.java

Lines changed: 10 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -17,9 +17,11 @@
1717
*/
1818
package com.deem.zkui.utils;
1919

20+
import java.net.Socket;
2021
import java.io.BufferedReader;
2122
import java.io.IOException;
2223
import java.io.InputStreamReader;
24+
import java.io.PrintWriter;
2325
import org.slf4j.Logger;
2426
import org.slf4j.LoggerFactory;
2527

@@ -28,18 +30,21 @@ public enum CmdUtil {
2830
INSTANCE;
2931
private final static Logger logger = LoggerFactory.getLogger(CmdUtil.class);
3032

31-
public String executeCmd(String cmd, String zkServer, String zkPort) throws IOException, InterruptedException {
32-
String[] cmdArr = {"/bin/sh", "-c", "echo " + cmd + " | nc -q5 " + zkServer + " " + zkPort};
33-
Process p = Runtime.getRuntime().exec(cmdArr);
34-
p.waitFor();
35-
BufferedReader reader = new BufferedReader(new InputStreamReader(p.getInputStream()));
33+
public String executeCmd(String cmd, String zkServer, String zkPort) throws IOException {
34+
Socket s = new Socket(zkServer, Integer.parseInt(zkPort));
35+
PrintWriter out = new PrintWriter(s.getOutputStream(), true);
36+
BufferedReader reader = new BufferedReader(new InputStreamReader(s.getInputStream()));
37+
out.println(cmd);
3638
String line = reader.readLine();
3739
StringBuilder sb = new StringBuilder();
3840
while (line != null) {
3941
sb.append(line);
4042
sb.append("<br/>");
4143
line = reader.readLine();
4244
}
45+
reader.close();
46+
out.close();
47+
s.close();
4348
return sb.toString();
4449
}
4550
}

0 commit comments

Comments
 (0)