+2
-3
@@ -37,6 +37,7 @@
|
||||
#include "constants.h"
|
||||
#include "core-varlink.h"
|
||||
#include "creds-util.h"
|
||||
#include "daemon-util.h"
|
||||
#include "dbus-job.h"
|
||||
#include "dbus-manager.h"
|
||||
#include "dbus-unit.h"
|
||||
@@ -3879,9 +3880,7 @@ void manager_send_reloading(Manager *m) {
|
||||
assert(m);
|
||||
|
||||
/* Let whoever invoked us know that we are now reloading */
|
||||
(void) sd_notifyf(/* unset_environment= */ false,
|
||||
"RELOADING=1\n"
|
||||
"MONOTONIC_USEC=" USEC_FMT "\n", now(CLOCK_MONOTONIC));
|
||||
(void) notify_reloading_full(/* status = */ NULL);
|
||||
|
||||
/* And ensure that we'll send READY=1 again as soon as we are ready again */
|
||||
m->ready_sent = false;
|
||||
|
||||
+1
-4
@@ -1068,10 +1068,7 @@ static int manager_dispatch_reload_signal(sd_event_source *s, const struct signa
|
||||
Manager *m = userdata;
|
||||
int r;
|
||||
|
||||
(void) sd_notifyf(/* unset= */ false,
|
||||
"RELOADING=1\n"
|
||||
"STATUS=Reloading configuration...\n"
|
||||
"MONOTONIC_USEC=" USEC_FMT, now(CLOCK_MONOTONIC));
|
||||
(void) notify_reloading();
|
||||
|
||||
manager_reset_config(m);
|
||||
r = manager_parse_config_file(m);
|
||||
|
||||
@@ -1120,10 +1120,7 @@ int manager_reload(Manager *m, sd_bus_message *message) {
|
||||
|
||||
assert(m);
|
||||
|
||||
(void) sd_notifyf(/* unset= */ false,
|
||||
"RELOADING=1\n"
|
||||
"STATUS=Reloading configuration...\n"
|
||||
"MONOTONIC_USEC=" USEC_FMT, now(CLOCK_MONOTONIC));
|
||||
(void) notify_reloading();
|
||||
|
||||
r = netdev_load(m, /* reload= */ true);
|
||||
if (r < 0)
|
||||
|
||||
@@ -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;
|
||||
}
|
||||
|
||||
@@ -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...");
|
||||
}
|
||||
|
||||
@@ -274,15 +274,9 @@ static void manager_reload(Manager *manager, bool force) {
|
||||
return;
|
||||
|
||||
/* If we eat this up, then tell our service manager to just continue */
|
||||
(void) sd_notifyf(/* unset= */ false,
|
||||
"RELOADING=1\n"
|
||||
"STATUS=Skipping configuration reloading, nothing changed.\n"
|
||||
"MONOTONIC_USEC=" USEC_FMT, now(CLOCK_MONOTONIC));
|
||||
(void) notify_reloading_full("Skipping configuration reloading, nothing changed.");
|
||||
} else {
|
||||
(void) sd_notifyf(/* unset= */ false,
|
||||
"RELOADING=1\n"
|
||||
"STATUS=Flushing configuration...\n"
|
||||
"MONOTONIC_USEC=" USEC_FMT, now(CLOCK_MONOTONIC));
|
||||
(void) notify_reloading();
|
||||
|
||||
manager_kill_workers(manager, false);
|
||||
|
||||
|
||||
Reference in New Issue
Block a user