Call setproctitle with number of services

This commit is contained in:
C. McEnroe 2020-08-15 16:53:15 -04:00
parent 6fb08baee3
commit 1e1a848f22

View File

@ -179,6 +179,14 @@ static void parseInterval(const char *millis) {
restartInterval.tv_nsec = 1000000 * (ms % 1000); 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[]) { int main(int argc, char *argv[]) {
setprogname(argv[0]); setprogname(argv[0]);
@ -284,8 +292,7 @@ int main(int argc, char *argv[]) {
for (size_t i = 0; i < services.len; ++i) { for (size_t i = 0; i < services.len; ++i) {
serviceStart(&services.ptr[i]); serviceStart(&services.ptr[i]);
} }
setTitle();
// TODO: setproctitle to number of services currently running.
sigset_t mask; sigset_t mask;
sigemptyset(&mask); sigemptyset(&mask);
@ -359,6 +366,7 @@ int main(int argc, char *argv[]) {
serviceStart(service); serviceStart(service);
} }
} }
setTitle();
} }
if (signals[SIGCHLD]) { if (signals[SIGCHLD]) {
@ -368,6 +376,7 @@ int main(int argc, char *argv[]) {
serviceReap(pid, status); serviceReap(pid, status);
} }
if (pid < 0 && errno != ECHILD) syslog(LOG_WARNING, "waitpid: %m"); if (pid < 0 && errno != ECHILD) syslog(LOG_WARNING, "waitpid: %m");
setTitle();
signals[SIGCHLD] = 0; signals[SIGCHLD] = 0;
} }
@ -388,6 +397,7 @@ int main(int argc, char *argv[]) {
close(fifo); close(fifo);
unlink(fifoPath); unlink(fifoPath);
setproctitle("stopping");
size_t count = 0; size_t count = 0;
for (size_t i = 0; i < services.len; ++i) { for (size_t i = 0; i < services.len; ++i) {
serviceStop(&services.ptr[i]); serviceStop(&services.ptr[i]);