]> arthur.barton.de Git - netatalk.git/blobdiff - etc/netatalk/netatalk.c
Adjust log messages
[netatalk.git] / etc / netatalk / netatalk.c
index 1728f43256a5d22eb0d6fc8ba4ff806448b36804..df907153c2b10d8d4af138f56413c88e482a1c59 100644 (file)
@@ -41,7 +41,7 @@ static pid_t run_process(const char *path, ...);
 /* static variables */
 static AFPObj obj;
 static sig_atomic_t got_chldsig;
-static pid_t afpd_pid, cnid_metad_pid;
+static pid_t afpd_pid = -1,  cnid_metad_pid = -1;
 static uint afpd_restarts, cnid_metad_restarts;
 static struct event_base *base;
 
@@ -70,8 +70,10 @@ static void libevent_logmsg_cb(int severity, const char *msg)
 static void sigterm_cb(evutil_socket_t fd, short what, void *arg)
 {
     LOG(log_note, logtype_afpd, "Exiting on SIGTERM");
-    kill(afpd_pid, SIGTERM);
-    kill(cnid_metad_pid, SIGTERM);
+    if (afpd_pid != -1)
+        kill(afpd_pid, SIGTERM);
+    if (cnid_metad_pid != -1)
+        kill(cnid_metad_pid, SIGTERM);
     server_unlock(_PATH_NETATALK_LOCK);
     event_base_loopbreak(base);
 }
@@ -79,8 +81,10 @@ static void sigterm_cb(evutil_socket_t fd, short what, void *arg)
 static void sigquit_cb(evutil_socket_t fd, short what, void *arg)
 {
     LOG(log_note, logtype_afpd, "Exiting on SIGQUIT");
-    kill(afpd_pid, SIGTERM);
-    kill(cnid_metad_pid, SIGTERM);
+    if (afpd_pid != -1)
+        kill(afpd_pid, SIGTERM);
+    if (cnid_metad_pid != -1)
+        kill(cnid_metad_pid, SIGTERM);
     server_unlock(_PATH_NETATALK_LOCK);
     event_base_loopbreak(base);
 }
@@ -90,7 +94,7 @@ static void sigchld_cb(evutil_socket_t fd, short what, void *arg)
     int status, i;
     pid_t pid;
 
-    LOG(log_note, logtype_afpd, "Got SIGCHLD event");
+    LOG(log_debug, logtype_afpd, "Got SIGCHLD event");
   
     while ((pid = waitpid(-1, &status, WNOHANG)) > 0) {
         if (WIFEXITED(status)) {
@@ -108,14 +112,14 @@ static void sigchld_cb(evutil_socket_t fd, short what, void *arg)
         if (pid == afpd_pid) {
             sleep(1);
             afpd_restarts++;
-            LOG(log_note, logtype_afpd, "Restarting 'afpd' (restart: %u)", afpd_restarts);
+            LOG(log_note, logtype_afpd, "Restarting 'afpd' (restarts: %u)", afpd_restarts);
             if ((afpd_pid = run_process(_PATH_AFPD, "-d", "-F", obj.options.configfile, NULL)) == -1) {
                 LOG(log_error, logtype_afpd, "Error starting 'afpd'");
             }
         } else if (pid = cnid_metad_pid) {
             sleep(1);
             cnid_metad_restarts++;
-            LOG(log_note, logtype_afpd, "Restarting 'cnid_metad' (restart: %u)", cnid_metad_restarts);
+            LOG(log_note, logtype_afpd, "Restarting 'cnid_metad' (restarts: %u)", cnid_metad_restarts);
             if ((cnid_metad_pid = run_process(_PATH_CNID_METAD, "-d", "-F", obj.options.configfile, NULL)) == -1) {
                 LOG(log_error, logtype_afpd, "Error starting 'cnid_metad'");
             }
@@ -129,6 +133,10 @@ static void sigchld_cb(evutil_socket_t fd, short what, void *arg)
 
 static void netatalk_exit(int ret)
 {
+    if (afpd_pid != -1)
+        kill(afpd_pid, SIGTERM);
+    if (cnid_metad_pid != -1)
+        kill(cnid_metad_pid, SIGTERM);
     server_unlock(_PATH_NETATALK_LOCK);
     exit(ret);
 }