From: Steinar H. Gunderson Date: Mon, 10 Aug 2015 22:13:39 +0000 (+0200) Subject: Use libsystemd to inform systemd accurately about when the service is up and running. X-Git-Tag: 1.2.1~4 X-Git-Url: https://git.sesse.net/?p=cubemap;a=commitdiff_plain;h=7628375363e006e2c272f98117609e1595f8cd1a Use libsystemd to inform systemd accurately about when the service is up and running. --- diff --git a/Makefile b/Makefile index d426bc1..abadaf7 100644 --- a/Makefile +++ b/Makefile @@ -2,8 +2,8 @@ CC=gcc CXX=g++ INSTALL=install PROTOC=protoc -CXXFLAGS=-Wall -O2 -g -pthread $(shell getconf LFS_CFLAGS) -LDLIBS=-lprotobuf -pthread -lrt +CXXFLAGS=-Wall -O2 -g -pthread $(shell getconf LFS_CFLAGS) $(shell pkg-config --cflags libsystemd) +LDLIBS=-lprotobuf -pthread -lrt $(shell pkg-config --libs libsystemd) OBJS=main.o client.o server.o stream.o udpstream.o serverpool.o mutexlock.o input.o input_stats.o httpinput.o udpinput.o parse.o config.o acceptor.o stats.o accesslog.o thread.o util.o log.o metacube2.o sa_compare.o state.pb.o diff --git a/cubemap.service.in b/cubemap.service.in index 442e019..9fe97ed 100644 --- a/cubemap.service.in +++ b/cubemap.service.in @@ -2,7 +2,7 @@ Description=Cubemap stream relay [Service] -Type=simple +Type=notify ExecStart=@prefix@/bin/cubemap @sysconfdir@/cubemap.config User=cubemap ExecReload=/bin/kill -HUP $MAINPID diff --git a/main.cpp b/main.cpp index 98d0948..eccf6d7 100644 --- a/main.cpp +++ b/main.cpp @@ -9,6 +9,7 @@ #include #include #include +#include #include #include #include @@ -541,10 +542,18 @@ start: log(INFO, "Re-exec happened in approx. %.0f ms.", glitch_time * 1000.0); } + sd_notify(0, "READY=1"); + while (!hupped) { usleep(100000); } + if (stopped) { + sd_notify(0, "STOPPING=1"); + } else { + sd_notify(0, "RELOADING=1"); + } + // OK, we've been HUPed. Time to shut down everything, serialize, and re-exec. err = clock_gettime(CLOCK_MONOTONIC, &serialize_start); assert(err != -1);