summaryrefslogtreecommitdiffstats
path: root/logforwarder/src/apps/vespa-otelcol-start/child-handler.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'logforwarder/src/apps/vespa-otelcol-start/child-handler.cpp')
-rw-r--r--logforwarder/src/apps/vespa-otelcol-start/child-handler.cpp16
1 files changed, 12 insertions, 4 deletions
diff --git a/logforwarder/src/apps/vespa-otelcol-start/child-handler.cpp b/logforwarder/src/apps/vespa-otelcol-start/child-handler.cpp
index 4c5882b9710..a69f090e4df 100644
--- a/logforwarder/src/apps/vespa-otelcol-start/child-handler.cpp
+++ b/logforwarder/src/apps/vespa-otelcol-start/child-handler.cpp
@@ -58,10 +58,18 @@ void ChildHandler::startChild(const std::string &progPath, const std::string &cf
return;
}
if (child == 0) {
- std::string cfArg1{"--config=file:" "/etc/otelcol/gw-config.yaml"};
- std::string cfArg2{"--config=file:" + cfPath};
- const char *cargv[] = { progPath.c_str(), cfArg1.c_str(), cfArg2.c_str(), nullptr };
- execv(progPath.c_str(), const_cast<char **>(cargv));
+ std::string cfgPrefix{"--config=file:"};
+ const char *gwCfg = "/etc/otelcol/gw-config.yaml";
+ std::string cfArg1{cfgPrefix + gwCfg};
+ std::string cfArg2{cfgPrefix + cfPath};
+ if (access(gwCfg, R_OK) == 0) {
+ const char *cargv[] = { progPath.c_str(), cfArg1.c_str(), cfArg2.c_str(), nullptr };
+ execv(progPath.c_str(), const_cast<char **>(cargv));
+ } else {
+ fprintf(stderr, "info\tMissing config file: %s (running without it)\n", gwCfg);
+ const char *cargv[] = { progPath.c_str(), cfArg2.c_str(), nullptr };
+ execv(progPath.c_str(), const_cast<char **>(cargv));
+ }
// if execv fails:
perror(progPath.c_str());
std::_Exit(1);