diff --git a/src/config.cpp b/src/config.cpp index 2ac46da6d..b48b8c19a 100644 --- a/src/config.cpp +++ b/src/config.cpp @@ -802,6 +802,8 @@ void loadServerConfigFromString(char *config) { g_fTestMode = yesnotoi(argv[1]); } else if (!strcasecmp(argv[0],"rdbfuzz-mode")) { // NOP, handled in main + } else if (!strcasecmp(argv[0],"enable-pro")) { + cserver.fUsePro = true; } else { err = "Bad directive or wrong number of arguments"; goto loaderr; } diff --git a/src/server.cpp b/src/server.cpp index 3c8c588cd..286841121 100644 --- a/src/server.cpp +++ b/src/server.cpp @@ -5183,6 +5183,12 @@ int main(int argc, char **argv) { sdsfree(options); } + if (cserver.fUsePro) { + execv("keydb-pro-server", argv); + perror("Failed launch the pro binary"); + exit(EXIT_FAILURE); + } + serverLog(LL_WARNING, "oO0OoO0OoO0Oo KeyDB is starting oO0OoO0OoO0Oo"); serverLog(LL_WARNING, "KeyDB version=%s, bits=%d, commit=%s, modified=%d, pid=%d, just started", diff --git a/src/server.h b/src/server.h index ad7f2826c..cd20bad3f 100644 --- a/src/server.h +++ b/src/server.h @@ -1599,6 +1599,7 @@ struct redisServerConst { size_t system_memory_size; /* Total memory in system as reported by OS */ unsigned char uuid[UUID_BINARY_LEN]; /* This server's UUID - populated on boot */ + bool fUsePro = false; }; struct redisServer {