summary refs log tree commit diff
path: root/daemon.c
diff options
context:
space:
mode:
authorJune McEnroe <june@causal.agency>2020-08-15 16:53:15 -0400
committerJune McEnroe <june@causal.agency>2020-08-15 16:53:15 -0400
commit1e1a848f22135d234493c2940901770d4e20e3ab (patch)
treea15358de204622910de12d10521f2afb130b9956 /daemon.c
parentRename project to catsit (diff)
downloadcatsit-1e1a848f22135d234493c2940901770d4e20e3ab.tar.gz
catsit-1e1a848f22135d234493c2940901770d4e20e3ab.zip
Call setproctitle with number of services
Diffstat (limited to '')
-rw-r--r--daemon.c14
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]);
53 +0200'>2015-08-13Remove redundant includesJohn Keeping 2015-08-13Makefile: include Git's config.mak.unameJohn Keeping 2015-08-13tests: allow shell to be overriddenJohn Keeping 2015-08-13redirect: cleanlinessJason A. Donenfeld 2015-08-13redirect: be more careful for different cgi setupsJason A. Donenfeld 2015-08-12ui-log: fix double countingJohn Keeping 2015-08-12log: allow users to follow a fileJohn Keeping 2015-08-12shared: make cgit_diff_tree_cb publicJohn Keeping 2015-08-12t0110: Chain together using &&Jason A. Donenfeld 2015-08-12about: always ensure page has a trailing slashJason A. Donenfeld 2015-08-12filters: apply HTML escapingLazaros Koromilas 2015-08-12git: update to v2.5.0Christian Hesse 2015-08-12Fix processing of repo.hide and repo.ignoreDaniel Reichelt