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);
}
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]);