diff options
author | Arne Juul <arnej@yahoo-inc.com> | 2019-03-11 11:19:41 +0000 |
---|---|---|
committer | Arne Juul <arnej@yahoo-inc.com> | 2019-03-11 11:19:41 +0000 |
commit | f9c2e2629cdf04b9a643f27c3583086b5c6e60d7 (patch) | |
tree | 26398e2d57d01d694f6abb1e964f9eefb41593f7 /configd/src/apps/sentinel/config-handler.cpp | |
parent | 48ce50681ad29a1a17446dbb1f0413615ca35725 (diff) |
add "restart" hooks
Diffstat (limited to 'configd/src/apps/sentinel/config-handler.cpp')
-rw-r--r-- | configd/src/apps/sentinel/config-handler.cpp | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/configd/src/apps/sentinel/config-handler.cpp b/configd/src/apps/sentinel/config-handler.cpp index a62b74c6b4a..4ab8b00916d 100644 --- a/configd/src/apps/sentinel/config-handler.cpp +++ b/configd/src/apps/sentinel/config-handler.cpp @@ -400,6 +400,22 @@ ConfigHandler::handleCmd(const Cmd& cmd) cmd.retValue(retbuf); } break; + case Cmd::RESTART: + { + Service *service = serviceByName(cmd.serviceName()); + if (service == nullptr) { + cmd.retError("Cannot find named service"); + return; + } + service->setAutomatic(true); + service->resetRestartPenalty(); + if (service->isRunning()) { + service->terminate(true, false); + } else { + service->start(); + } + } + break; case Cmd::START: { Service *service = serviceByName(cmd.serviceName()); @@ -408,6 +424,7 @@ ConfigHandler::handleCmd(const Cmd& cmd) return; } service->setAutomatic(true); + service->resetRestartPenalty(); if (! service->isRunning()) { service->start(); } |