diff options
author | Håkon Hallingstad <hakon@verizonmedia.com> | 2019-06-12 17:13:31 +0200 |
---|---|---|
committer | Håkon Hallingstad <hakon@verizonmedia.com> | 2019-06-12 17:13:31 +0200 |
commit | 47b95b46234486b0d7817465c81669c71355aa7b (patch) | |
tree | 62c3e15e082effafc37d439c80fb70426a8f8eb3 /node-admin/src | |
parent | 9982ffd1d4a1e812375ec5d34e27b7e3e94cbbd6 (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.java | 12 |
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); |