-
需求描述
页面点击刷新按钮,后台发送一条ping指令,判断目标主机是否可以联通。 -
关键代码
测试类
public class TestPing {
public static void main(String[] args) {
// -c 1 表明只发送一次数据包就停止
// ovpn: docker容器名, ip: 目标ip
String strPingCmd = "docker exec " + ovpn + " /bin/ping -c 1 " + ip;
int flag = execOneCmd(strPingCmd);
}
}
工具方法
/**
* 执行一个后台指令
*
* @param cmd
* @return
*/
public int execOneCmd(String cmd) {
Process process;
int flag = 0;
try {
String[] command = { "/bin/sh", "-c", cmd };
// Runtime.getRuntime()返回与当前 Java 应用程序相关的运行时对象。
// 在单独的进程中执行指定的字符串命令
process = Runtime.getRuntime().exec(command);
// 导致当前线程等待,如有必要,一直要等到由该 Process 对象表示的进程终止。
process.waitFor();
// 表示子进程的出口值,值 0 表示正常终止
flag = process.exitValue();
} catch (Exception e) {
e.printStackTrace();
}
return flag;
}