我正在 java 中执行 network
服务重启,如下所示。
String[] serviceStop = { "service","network","restart" };
Process networkProc = new ProcessBuilder(serviceStop).start();
networkProc.waitFor();
Integer returncode=networkProc.exitValue();
即使它仍在重新启动,它也会返回成功代码。
但我需要通过检查 network service
状态来确保重启成功并在完成后返回。如何在 Java 中实现这一点?
最佳答案
您可以使用服务网络状态
来显示网络状态。使用 loop 和 sleep 你应该可以实现你想要的,但我真的很惊讶你的需求。
- 你确定 exitValue 是 0 吗?
- 您确定您拥有执行此命令的所有权限吗?
您会查看流程输出吗? (有些进程以0退出但显示错误)
Process networkProc = new ProcessBuilder(serviceStop) .redirectOutput(new File("serviceRestartOuput.txt")) .start();
除了服务,您还可以使用 ifdown 和 ifup ifdown eth0 && ifup eth0
,将 eth0 替换为您的网络接口(interface)名称。像调用 service network restart
一样调用进程。
关于java - 以编程方式检查java中的centos 'network'服务状态,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35596238/