daemon-util: introduce notify_reloading helper

Prompted by #31951
This commit is contained in:
Mike Yuan
2024-03-26 12:52:33 +00:00
committed by Luca Boccassi
parent c38e4e2fda
commit b377a7cce9
6 changed files with 28 additions and 20 deletions
+16
View File
@@ -4,6 +4,7 @@
#include "fd-util.h"
#include "log.h"
#include "string-util.h"
#include "time-util.h"
static int notify_remove_fd_warn(const char *name) {
int r;
@@ -74,3 +75,18 @@ int notify_push_fdf(int fd, const char *format, ...) {
return notify_push_fd(fd, name);
}
int notify_reloading_full(const char *status) {
int r;
r = sd_notifyf(/* unset_environment = */ false,
"RELOADING=1\n"
"MONOTONIC_USEC=" USEC_FMT
"%s%s",
now(CLOCK_MONOTONIC),
status ? "\nSTATUS=" : "", strempty(status));
if (r < 0)
return log_debug_errno(r, "Failed to notify service manager for reloading status: %m");
return 0;
}
+6 -1
View File
@@ -10,7 +10,7 @@
#define NOTIFY_READY "READY=1\n" "STATUS=Processing requests..."
#define NOTIFY_STOPPING "STOPPING=1\n" "STATUS=Shutting down..."
static inline const char *notify_start(const char *start, const char *stop) {
static inline const char* notify_start(const char *start, const char *stop) {
if (start)
(void) sd_notify(false, start);
@@ -26,3 +26,8 @@ static inline void notify_on_cleanup(const char **p) {
int notify_remove_fd_warnf(const char *format, ...) _printf_(1, 2);
int close_and_notify_warn(int fd, const char *name);
int notify_push_fdf(int fd, const char *format, ...) _printf_(2, 3);
int notify_reloading_full(const char *status);
static inline int notify_reloading(void) {
return notify_reloading_full("Reloading configuration...");
}