summaryrefslogtreecommitdiffstats
path: root/node-admin/src
diff options
context:
space:
mode:
authorHåkon Hallingstad <hakon@verizonmedia.com>2019-06-12 17:13:31 +0200
committerHåkon Hallingstad <hakon@verizonmedia.com>2019-06-12 17:13:31 +0200
commit47b95b46234486b0d7817465c81669c71355aa7b (patch)
tree62c3e15e082effafc37d439c80fb70426a8f8eb3 /node-admin/src
parent9982ffd1d4a1e812375ec5d34e27b7e3e94cbbd6 (diff)
Add systemctl is-active
Diffstat (limited to 'node-admin/src')
-rw-r--r--node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/systemd/SystemCtl.java12
1 files changed, 11 insertions, 1 deletions
diff --git a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/systemd/SystemCtl.java b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/systemd/SystemCtl.java
index 77510f7b6ef..17d8126a5c9 100644
--- a/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/systemd/SystemCtl.java
+++ b/node-admin/src/main/java/com/yahoo/vespa/hosted/node/admin/task/util/systemd/SystemCtl.java
@@ -2,6 +2,7 @@
package com.yahoo.vespa.hosted.node.admin.task.util.systemd;
import com.yahoo.vespa.hosted.node.admin.component.TaskContext;
+import com.yahoo.vespa.hosted.node.admin.task.util.process.CommandResult;
import com.yahoo.vespa.hosted.node.admin.task.util.process.Terminal;
import java.util.Objects;
@@ -58,7 +59,7 @@ public class SystemCtl {
public boolean serviceExists(TaskContext context, String unit) {
return terminal.newCommandLine(context)
- .add("systemctl").add("list-unit-files").add(unit + ".service").executeSilently()
+ .add("systemctl", "list-unit-files", unit + ".service").executeSilently()
.mapOutput(output -> {
// Last line of the form: "1 unit files listed."
Matcher matcher = UNIT_FILES_LISTED_PATTERN.matcher(output);
@@ -70,6 +71,15 @@ public class SystemCtl {
});
}
+ /** Returns true if the unit exists and is active (i.e. running). unit is e.g. "docker". */
+ public boolean isActive(TaskContext context, String unit) {
+ return terminal.newCommandLine(context)
+ .add("systemctl", "--quiet", "is-active", unit + ".service")
+ .ignoreExitCode()
+ .executeSilently()
+ .map(CommandResult::getExitCode) == 0;
+ }
+
public class SystemCtlEnable extends SystemCtlCommand {
private SystemCtlEnable(String unit) {
super("enable", unit);