]> arthur.barton.de Git - netatalk.git/blobdiff - etc/cnid_dbd/cnid_metad.c
Implement proper daemonisation for afpd and cnid_metad, fix for NetAFP #10163.
[netatalk.git] / etc / cnid_dbd / cnid_metad.c
index 86d904bdf7becb45ce689afaae9ae3d7f6385668..ad9727daab226d6dbb9b4bd5f789aacb9e301e94 100644 (file)
@@ -490,6 +490,17 @@ int main(int argc, char *argv[])
         }
     }
 
+    if (!debug && daemonize(0, 0) != 0)
+        exit(EXITERR_SYS);
+
+    /* Check PID lockfile and become a daemon */
+    switch(check_lockfile("cnid_metad", _PATH_CNID_METAD_LOCK)) {
+    case 0:
+        break;
+    default:
+        exit(EXITERR_SYS);
+    }
+
     if (loglevel) {
         strlcpy(logconfig + 8, loglevel, 13);
         free(loglevel);
@@ -508,16 +519,6 @@ int main(int argc, char *argv[])
 
     (void)setlimits();
 
-    /* Check PID lockfile and become a daemon */
-    switch(server_lock("cnid_metad", _PATH_CNID_METAD_LOCK, debug)) {
-    case -1: /* error */
-        daemon_exit(EXITERR_SYS);
-    case 0: /* child */
-        break;
-    default: /* server */
-        exit(0);
-    }
-
     if ((srvfd = tsockfd_create(host, port, 10)) < 0)
         daemon_exit(1);