diff options
-rw-r--r-- | daemon.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/daemon.c b/daemon.c index c873e8a..3fff805 100644 --- a/daemon.c +++ b/daemon.c @@ -179,6 +179,14 @@ static void parseInterval(const char *millis) { restartInterval.tv_nsec = 1000000 * (ms % 1000); } +static void setTitle(void) { + size_t started = 0; + for (size_t i = 0; i < services.len; ++i) { + if (services.ptr[i].state == Start) started++; + } + setproctitle("%zu/%zu services", started, services.len); +} + int main(int argc, char *argv[]) { setprogname(argv[0]); @@ -284,8 +292,7 @@ int main(int argc, char *argv[]) { for (size_t i = 0; i < services.len; ++i) { serviceStart(&services.ptr[i]); } - - // TODO: setproctitle to number of services currently running. + setTitle(); sigset_t mask; sigemptyset(&mask); @@ -359,6 +366,7 @@ int main(int argc, char *argv[]) { serviceStart(service); } } + setTitle(); } if (signals[SIGCHLD]) { @@ -368,6 +376,7 @@ int main(int argc, char *argv[]) { serviceReap(pid, status); } if (pid < 0 && errno != ECHILD) syslog(LOG_WARNING, "waitpid: %m"); + setTitle(); signals[SIGCHLD] = 0; } @@ -388,6 +397,7 @@ int main(int argc, char *argv[]) { close(fifo); unlink(fifoPath); + setproctitle("stopping"); size_t count = 0; for (size_t i = 0; i < services.len; ++i) { serviceStop(&services.ptr[i]); |