我最近在使用 Macaca 进行测试,在 java 中使用多线程进行测试,启动 server 的代码如下
public void execCmd() {
logger.debug("To exec cmd :" + this.command);
try {
ProcessBuilder pb = new ProcessBuilder(generateAl(command));
pb.redirectErrorStream(true);
this.p = pb.start();
} catch (IOException e) {
logger.error(e.toString());
}
}
结束 server 的代码如下:
public void destroy() {
if (this.p != null) {
if(this.thread != null) {
this.thread.setExitFlag(true);
}
this.p.destroy();
}
}
现在存在的问题是:执行 this.p.destroy();之后
501 1606 1521 0 8:25下午 ttys005 0:00.26 node /usr/local/bin/macaca server -p 3456
501 1607 1606 0 8:25下午 ttys005 0:00.26 node /usr/local/lib/node_modules/macaca-cli/bin/macaca-cli-server -p 3456
只有
501 1606 1521 0 8:25下午 ttys005 0:00.26 node /usr/local/bin/macaca server -p 3456
这条进程被销毁,
501 1607 1606 0 8:25下午 ttys005 0:00.26 node /usr/local/lib/node_modules/macaca-cli/bin/macaca-cli-server -p 3456
进程依然存在,端口没有释放,所以想请教下各位有没有什么好的 macaca server 的管理方法,因为我不想采用扫描端口杀进程的方法来实现