aboutsummaryrefslogtreecommitdiffstats
path: root/logforwarder/src/apps/vespa-logforwarder-start/main.cpp
diff options
context:
space:
mode:
authorArne Juul <arnej@yahooinc.com>2022-09-15 11:17:26 +0000
committerArne Juul <arnej@yahooinc.com>2022-09-15 11:20:38 +0000
commita5fbb5b41765fa12ea8da3cb6f7837325d3bb3d9 (patch)
tree0a2da1a3f6986f402f75486d1fa6fdb2bf313a86 /logforwarder/src/apps/vespa-logforwarder-start/main.cpp
parent641561888e998be6d198c651c3c45de9f1915b31 (diff)
be more careful about splunk start/stop
* validate the configurable splunk-home * do stopping via C++ program instead of shell command * some refactoring of C++ code as well
Diffstat (limited to 'logforwarder/src/apps/vespa-logforwarder-start/main.cpp')
-rw-r--r--logforwarder/src/apps/vespa-logforwarder-start/main.cpp33
1 files changed, 27 insertions, 6 deletions
diff --git a/logforwarder/src/apps/vespa-logforwarder-start/main.cpp b/logforwarder/src/apps/vespa-logforwarder-start/main.cpp
index 33fe4489811..d24c9c982a1 100644
--- a/logforwarder/src/apps/vespa-logforwarder-start/main.cpp
+++ b/logforwarder/src/apps/vespa-logforwarder-start/main.cpp
@@ -6,7 +6,8 @@
#include <vespa/log/log.h>
LOG_SETUP("vespa-logforwarder-start");
-#include "cf-handler.h"
+#include "splunk-starter.h"
+#include "splunk-stopper.h"
#include <vespa/vespalib/util/sig_catch.h>
class Wrapper {
@@ -15,7 +16,7 @@ public:
Wrapper(const char *cfid) : _configId(cfid) {}
void run() {
vespalib::SigCatch catcher;
- CfHandler handler;
+ SplunkStarter handler;
handler.start(_configId);
while (! catcher.receivedStopSignal()) {
handler.check();
@@ -28,12 +29,32 @@ public:
int
main(int argc, char** argv)
{
- int c = getopt(argc, argv, "c:");
- if (c != 'c') {
+ int c = -1;
+ bool stopMode = false;
+ const char *cfid = nullptr;
+ while ((c = getopt(argc, argv, "Sc:")) != -1) {
+ switch (c) {
+ case 'S':
+ stopMode = true;
+ break;
+ case 'c':
+ cfid = optarg;
+ break;
+ default:
+ cfid = nullptr;
+ break;
+ }
+ }
+ if (cfid == nullptr) {
LOG(error, "Usage: %s -c <config-id>", argv[0]);
return EXIT_FAILURE;
}
- Wrapper wrapper(optarg);
- wrapper.run();
+ if (stopMode) {
+ SplunkStopper stopper(cfid);
+ stopper.check();
+ } else {
+ Wrapper wrapper(cfid);
+ wrapper.run();
+ }
return 0;
}