summaryrefslogtreecommitdiffstats
path: root/configd/src/apps/sentinel/config-handler.cpp
diff options
context:
space:
mode:
authorArne Juul <arnej@yahoo-inc.com>2019-03-11 11:19:41 +0000
committerArne Juul <arnej@yahoo-inc.com>2019-03-11 11:19:41 +0000
commitf9c2e2629cdf04b9a643f27c3583086b5c6e60d7 (patch)
tree26398e2d57d01d694f6abb1e964f9eefb41593f7 /configd/src/apps/sentinel/config-handler.cpp
parent48ce50681ad29a1a17446dbb1f0413615ca35725 (diff)
add "restart" hooks
Diffstat (limited to 'configd/src/apps/sentinel/config-handler.cpp')
-rw-r--r--configd/src/apps/sentinel/config-handler.cpp17
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();
}