--- otp_src_28.0.1/erts/epmd/src/epmd.c.orig
+++ otp_src_28.0.1/erts/epmd/src/epmd.c
@@ -126,6 +126,7 @@
     g->debug          = 0;
 
     g->silent         = 0; 
+    g->logging        = 1;
     g->is_daemon      = 0;
     g->brutal_kill    = check_relaxed();
     g->packet_timeout = CLOSE_TIMEOUT; /* Default timeout */
@@ -217,6 +218,9 @@
             g->is_systemd = 1;
             argv++; argc--;
 #endif /* HAVE_SYSTEMD_DAEMON */
+	} else if (strcmp(argv[0], "-disable_syslog") == 0) {
+        g->logging = 0;
+        argv++; argc--;
 	} else
 	    usage(g);
     }
@@ -255,6 +259,7 @@
     if (( child_pid = fork()) < 0)
       {
 #ifdef HAVE_SYSLOG_H
+    if (g->logging)
 	syslog(LOG_ERR,"erlang mapper daemon can't fork %m");
 #endif
 	epmd_cleanup_exit(g,1);
@@ -281,6 +286,7 @@
     if ((child_pid = fork()) < 0)
       {
 #ifdef HAVE_SYSLOG_H
+    if (g->logging)
 	syslog(LOG_ERR,"erlang mapper daemon can't fork 2'nd time %m");
 #endif
 	epmd_cleanup_exit(g,1);
@@ -450,7 +456,7 @@
   if (g->is_daemon)
     {
 #ifdef HAVE_SYSLOG_H
-      if (onsyslog)
+    if (onsyslog && g->logging == 1)
 	{
 	  erts_vsnprintf(buf, DEBUG_BUFFER_SIZE, format, args);
 	  syslog(LOG_ERR,"epmd: %s",buf);
--- otp_src_28.0.1/erts/epmd/src/epmd_int.h.orig
+++ otp_src_28.0.1/erts/epmd/src/epmd_int.h
@@ -334,6 +334,7 @@
   int port;
   int debug;
   int silent; 
+  int logging;
   int is_daemon;
   int brutal_kill;
   unsigned packet_timeout;