forked from pool/slurm
Egbert Eich
8d80dfc527
daemonizing process doesn't go away until the PID file with it PID of the daemon has bee written (bsc#1084125). OBS-URL: https://build.opensuse.org/package/show/network:cluster/slurm?expand=0&rev=52
48 lines
1.4 KiB
Diff
48 lines
1.4 KiB
Diff
From: Christian Goll <cgoll@suse.de>
|
|
Date: Mon Apr 9 10:23:01 2018 +0200
|
|
Subject: slurmctld uses xdaemon_* for systemd
|
|
Patch-mainline: Not yet
|
|
Git-repo: https://github.com/SchedMD/slurm
|
|
Git-commit: b11aae54f69855084370aaf0af3e928f63c639b3
|
|
References: bsc#1084125
|
|
|
|
|
|
Signed-off-by: Egbert Eich <eich@suse.de>
|
|
---
|
|
src/slurmctld/controller.c | 8 ++++++--
|
|
1 file changed, 6 insertions(+), 2 deletions(-)
|
|
|
|
diff --git a/src/slurmctld/controller.c b/src/slurmctld/controller.c
|
|
index 7867e1d479..dd5f3863b1 100644
|
|
--- a/src/slurmctld/controller.c
|
|
+++ b/src/slurmctld/controller.c
|
|
@@ -250,7 +250,7 @@ static bool _wait_for_server_thread(void);
|
|
/* main - slurmctld main function, start various threads and process RPCs */
|
|
int main(int argc, char **argv)
|
|
{
|
|
- int cnt, error_code, i;
|
|
+ int cnt, error_code, i, fd;
|
|
struct stat stat_buf;
|
|
struct rlimit rlim;
|
|
/* Locks: Write configuration, job, node, and partition */
|
|
@@ -298,7 +298,8 @@ int main(int argc, char **argv)
|
|
|
|
if (daemonize) {
|
|
slurmctld_config.daemonize = 1;
|
|
- if (xdaemon())
|
|
+ fd = xdaemon_init();
|
|
+ if (fd == -1)
|
|
error("daemon(): %m");
|
|
log_set_timefmt(slurmctld_conf.log_fmt);
|
|
log_alter(log_opts, LOG_DAEMON,
|
|
@@ -318,6 +319,9 @@ int main(int argc, char **argv)
|
|
*/
|
|
_init_pidfile();
|
|
_become_slurm_user();
|
|
+ if (daemonize) {
|
|
+ xdaemon_finish(fd);
|
|
+ }
|
|
|
|
/*
|
|
* Create StateSaveLocation directory if necessary.
|