0585732
From: Peter Lemenkov <lemenkov@gmail.com>
0585732
Date: Fri, 6 Jun 2014 15:29:49 +0400
0585732
Subject: [PATCH] Added systemd notify support to EPMD
0585732
0585732
Signed-off-by: Peter Lemenkov <lemenkov@gmail.com>
0585732
0585732
Conflicts:
0585732
	erts/configure.in
0585732
0585732
diff --git a/erts/epmd/src/epmd.c b/erts/epmd/src/epmd.c
0585732
index fc58882..1757fa9 100644
0585732
--- a/erts/epmd/src/epmd.c
0585732
+++ b/erts/epmd/src/epmd.c
0585732
@@ -589,9 +589,11 @@ void epmd_cleanup_exit(EpmdVars *g, int exitval)
0585732
       for(i=0; g->argv[i] != NULL; ++i)
0585732
 	  free(g->argv[i]);
0585732
       free(g->argv);
0585732
-  }      
0585732
-      
0585732
-
0585732
+  }
0585732
+#ifdef HAVE_SYSTEMD_SD_DAEMON_H
0585732
+  sd_notifyf(0, "STATUS=Exited.\n"
0585732
+                "ERRNO=%i", exitval);
0585732
+#endif // HAVE_SYSTEMD_SD_DAEMON_H
0585732
   exit(exitval);
0585732
 }
0585732
 
0585732
diff --git a/erts/epmd/src/epmd_srv.c b/erts/epmd/src/epmd_srv.c
0585732
index cb8ca96..78524a6 100644
0585732
--- a/erts/epmd/src/epmd_srv.c
0585732
+++ b/erts/epmd/src/epmd_srv.c
0585732
@@ -394,8 +394,11 @@ void run(EpmdVars *g)
0585732
       }
0585732
       select_fd_set(g, listensock[i]);
0585732
     }
0585732
-#ifdef HAVE_SYSTEMD_SD_DAEMON_H 
0585732
+#ifdef HAVE_SYSTEMD_SD_DAEMON_H
0585732
     }
0585732
+    sd_notifyf(0, "READY=1\n"
0585732
+                  "STATUS=Processing port mapping requests...\n"
0585732
+                  "MAINPID=%lu", (unsigned long) getpid());
0585732
 #endif
0585732
 
0585732
   dbg_tty_printf(g,2,"entering the main select() loop");