检查centos' network' java中的服务状态以编程方式

时间:2016-02-24 07:52:43

标签: java linux process centos command

我在java中执行network服务重启,如下所示。

String[] serviceStop = { "service","network","restart" };
Process networkProc = new ProcessBuilder(serviceStop).start();
networkProc.waitFor();
Integer returncode=networkProc.exitValue();

即使仍在重新启动,也会返回成功代码。 但我需要确保重启成功,并通过检查network service状态返回完成。如何在Java中实现这一点?

1 个答案:

答案 0 :(得分:0)

您可以使用service network status显示网络状态。有了循环和睡眠,你应该达到你想要的效果,但我真的很惊讶你的需要。

  • 您确定exitValue为0吗?
  • 您确定拥有执行此命令的所有权限吗?
  • 你看过程输出吗? (某些进程以0退出但显示错误)

    Process networkProc = new ProcessBuilder(serviceStop)
                    .redirectOutput(new File("serviceRestartOuput.txt"))
                    .start();
    

您也可以使用ifdown和ifup ifdown eth0 && ifup eth0代替服务,将eth0替换为您的网络接口名称。像对待service network restart一样调用流程。