- --- a/src/daemon.c
- +++ b/src/daemon.c
- @@ -252,6 +252,7 @@ void initdstate(DSTATE *s)
- s->sync = 0;
- s->forcesave = 0;
- s->noadd = 0;
- + s->noexit = 0;
- s->initdb = 0;
- s->iflisthash = 0;
- s->cfgfile[0] = '\0';
- @@ -282,6 +283,9 @@ void preparedatabase(DSTATE *s)
- }
-
- if (s->noadd) {
- + if (s->noexit) {
- + return;
- + }
- printf("No interfaces found in database, exiting.\n");
- exit(EXIT_FAILURE);
- }
- @@ -300,6 +304,9 @@ void preparedatabase(DSTATE *s)
- }
-
- if (!addinterfaces(s) && s->dbifcount == 0) {
- + if (s->noexit) {
- + return;
- + }
- printf("Nothing to do, exiting.\n");
- exit(EXIT_FAILURE);
- }
- --- a/src/daemon.h
- +++ b/src/daemon.h
- @@ -4,7 +4,7 @@
- typedef struct {
- int updateinterval, saveinterval;
- short running, dodbsave, rundaemon;
- - short dbsaved, showhelp, sync, forcesave, noadd, initdb;
- + short dbsaved, showhelp, sync, forcesave, noadd, noexit, initdb;
- short bootdetected, cleanuphour, dbretrycount;
- uint32_t iflisthash;
- uint64_t dbifcount;
- --- a/src/vnstatd.c
- +++ b/src/vnstatd.c
- @@ -249,6 +249,7 @@ void showhelp(void)
- printf(" --config <config file> select used config file\n");
- printf(" --noadd prevent startup if database has no interfaces\n");
- printf(" --alwaysadd [mode] automatically start monitoring all new interfaces\n");
- + printf(" --noexit keep running even when database has no interfaces\n");
- printf(" --initdb create empty database and exit\n\n");
-
- printf("See also \"man vnstatd\".\n");
- @@ -322,6 +323,8 @@ void parseargs(DSTATE *s, int argc, char
- } else {
- cfg.alwaysadd = 1;
- }
- + } else if (strcmp(argv[currentarg], "--noexit") == 0) {
- + s->noexit = 1;
- } else if (strcmp(argv[currentarg], "--initdb") == 0) {
- s->initdb = 1;
- s->showhelp = 0;
|