mirror of
https://github.com/samba-team/samba.git
synced 2025-01-31 01:48:16 +03:00
Send status to systemd on daemon start
systemd service files run in no-forking mode (--foreground) since 8b6f58194da7e849cdb9d20712dff49b17a93a77. Rearrange sd_notify() call in become_daemon() to only send status to systemd in this mode (Type=notify is not designed to monitor forking). Drop READY=0 (it does nothing) and MAINPID= (unnecessary because the process spawned by systemd is already the main PID). Also remove STATUS= prefix from debug messages. Signed-off-by: Marcos Mello <marcosfrm@gmail.com> Reviewed-by: Andreas Schneider <asn@samba.org> Reviewed-by: Alexander Bokovoy <ab@samba.org> Reviewed-by: Andrew Bartlett <abartlet@samba.org> (cherry picked from commit 440ddf8470b11a46066d282bf8945201d547c192) BUG: https://bugzilla.samba.org/show_bug.cgi?id=11568
This commit is contained in:
parent
d3e306433f
commit
7b52da5ecd
@ -73,14 +73,12 @@ void become_daemon(bool do_fork, bool no_session, bool log_stdout)
|
|||||||
exit_daemon("Fork failed", errno);
|
exit_daemon("Fork failed", errno);
|
||||||
}
|
}
|
||||||
if (newpid) {
|
if (newpid) {
|
||||||
#if defined(HAVE_LIBSYSTEMD_DAEMON) || defined(HAVE_LIBSYSTEMD)
|
|
||||||
sd_notifyf(0,
|
|
||||||
"READY=0\nSTATUS=Starting process...\n"
|
|
||||||
"MAINPID=%lu",
|
|
||||||
(unsigned long) newpid);
|
|
||||||
#endif /* HAVE_LIBSYSTEMD_DAEMON */
|
|
||||||
_exit(0);
|
_exit(0);
|
||||||
}
|
}
|
||||||
|
#if defined(HAVE_LIBSYSTEMD_DAEMON) || defined(HAVE_LIBSYSTEMD)
|
||||||
|
} else {
|
||||||
|
sd_notify(0, "STATUS=Starting process...");
|
||||||
|
#endif
|
||||||
}
|
}
|
||||||
|
|
||||||
/* detach from the terminal */
|
/* detach from the terminal */
|
||||||
@ -120,7 +118,7 @@ void exit_daemon(const char *msg, int error)
|
|||||||
msg,
|
msg,
|
||||||
error);
|
error);
|
||||||
#endif
|
#endif
|
||||||
DBG_ERR("STATUS=daemon failed to start: %s, error code %d\n",
|
DBG_ERR("daemon failed to start: %s, error code %d\n",
|
||||||
msg, error);
|
msg, error);
|
||||||
exit(1);
|
exit(1);
|
||||||
}
|
}
|
||||||
@ -134,7 +132,7 @@ void daemon_ready(const char *daemon)
|
|||||||
sd_notifyf(0, "READY=1\nSTATUS=%s: ready to serve connections...",
|
sd_notifyf(0, "READY=1\nSTATUS=%s: ready to serve connections...",
|
||||||
daemon);
|
daemon);
|
||||||
#endif
|
#endif
|
||||||
DBG_ERR("STATUS=daemon '%s' finished starting up and ready to serve "
|
DBG_ERR("daemon '%s' finished starting up and ready to serve "
|
||||||
"connections\n", daemon);
|
"connections\n", daemon);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -144,7 +142,7 @@ void daemon_status(const char *daemon, const char *msg)
|
|||||||
daemon = "Samba";
|
daemon = "Samba";
|
||||||
}
|
}
|
||||||
#if defined(HAVE_LIBSYSTEMD_DAEMON) || defined(HAVE_LIBSYSTEMD)
|
#if defined(HAVE_LIBSYSTEMD_DAEMON) || defined(HAVE_LIBSYSTEMD)
|
||||||
sd_notifyf(0, "\nSTATUS=%s: %s", daemon, msg);
|
sd_notifyf(0, "STATUS=%s: %s", daemon, msg);
|
||||||
#endif
|
#endif
|
||||||
DBG_ERR("STATUS=daemon '%s' : %s\n", daemon, msg);
|
DBG_ERR("daemon '%s' : %s\n", daemon, msg);
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user