From: Christian Goll Date: Mon Apr 9 10:59:57 2018 +0200 Subject: slurmd uses xdaemon_* for systemd Patch-mainline: Not yet Git-repo: https://github.com/SchedMD/slurm Git-commit: a048f30f7e41089f9f2f014897ca2c02bc41abb5 References: bsc#1084125 Signed-off-by: Egbert Eich --- src/slurmd/slurmd/slurmd.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/slurmd/slurmd/slurmd.c b/src/slurmd/slurmd/slurmd.c index 09d3a7136b..299fe3a2a9 100644 --- a/src/slurmd/slurmd/slurmd.c +++ b/src/slurmd/slurmd/slurmd.c @@ -214,7 +214,7 @@ static void _wait_for_all_threads(int secs); int main (int argc, char **argv) { - int i, pidfd; + int i, pidfd, pipefd; int blocked_signals[] = {SIGPIPE, 0}; int cc; char *oom_value; @@ -299,7 +299,8 @@ main (int argc, char **argv) * Become a daemon if desired. */ if (conf->daemonize) { - if (xdaemon()) + pipefd = xdaemon_init(); + if (pipefd == -1) error("Couldn't daemonize slurmd: %m"); } test_core_limit(); @@ -355,6 +356,9 @@ main (int argc, char **argv) conf->pid = getpid(); pidfd = create_pidfile(conf->pidfile, 0); + if (conf->daemonize) { + xdaemon_finish(pipefd); + } rfc2822_timestamp(time_stamp, sizeof(time_stamp)); info("%s started on %s", slurm_prog_name, time_stamp);