From 79354a389890a7ee4b6cd5b7d7044b521fb133a6 Mon Sep 17 00:00:00 2001 From: David Härdeman Date: Thu, 11 Jun 2020 21:28:35 +0200 Subject: Add some basic systemd integration --- main.c | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) (limited to 'main.c') diff --git a/main.c b/main.c index 422443e..34fd2d2 100644 --- a/main.c +++ b/main.c @@ -12,6 +12,7 @@ #include #include #include +#include #include "main.h" #include "uring.h" @@ -198,9 +199,11 @@ signalfd_read(struct cfg *cfg, struct uring_task *task, int res) if (sev->buf < 1000) { fprintf(stderr, "Got a signal to quit\n"); + sd_notifyf(0, "STOPPING=1\nSTATUS=Received signal, exiting"); exit(EXIT_SUCCESS); } else { fprintf(stderr, "Got a signal to dump tree\n"); + sd_notifyf(0, "STOPPING=1\nSTATUS=Received signal, exiting"); dump_tree(cfg); uring_task_put(cfg, &sev->task); announce_delete(cfg); @@ -301,6 +304,8 @@ int main(int argc, char **argv) { struct cfg *cfg; + struct server *server; + unsigned server_count; cfg = cfg_init(argc, argv); @@ -320,6 +325,19 @@ main(int argc, char **argv) uring_task_put(cfg, &cfg->task); + server_count = 0; + list_for_each_entry(server, &cfg->servers, list) + server_count++; + + sd_notifyf(0, "READY=1\n" + "STATUS=Running, %u server configurations loaded\n" + "MAINPID=%lu", + server_count, + (unsigned long)getpid()); + + fprintf(stderr, "%s: started, %u server configurations loaded\n", + argv[0], server_count); + uring_event_loop(cfg); fprintf(stderr, "Event loop exited\n"); -- cgit v1.2.3