【发布时间】:2019-03-17 14:22:50
【问题描述】:
我想检查在 linux 上运行的服务的状态。 在机器上,我使用命令“systemctl is-active service-name”来检查服务的状态。它给出的输出为活动/非活动(当服务正在运行/未运行时)。
我想在 java 中获取服务的状态。我是怎么做到的?
我试过这个..
String SERVER_STATUS = new String[]{SUDO_COMMAND, "systemctl is-active vpnd.service"};
try {
final Process process = new ProcessBuilder(SERVER_STATUS).start();
process.waitFor();
InputStream in = process.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(in));
String line = null;
System.out.println("status: " + br.readLine());
} catch (IOException | InterruptedException e) {}
但是br.readLine() 是空的。
【问题讨论】:
-
您只读取一行,而您的进程可能显示多行。在此处查看一个工作示例:stackoverflow.com/questions/16714127/…
-
@Stephane 我的意思是 br.readLine() 为空