Merge branch 'master' of ssh://git.indexdata.com/home/git/pub/metaproxy
[metaproxy-moved-to-github.git] / src / metaproxy_prog.cpp
index 7183419..6ecc5f0 100644 (file)
@@ -52,11 +52,15 @@ static pid_t process_group = 0;
 
 static void sig_usr1_handler(int s)
 {
+    yaz_log(YLOG_LOG, "metaproxy received SIGUSR1");
     routerp->stop();
+    yaz_daemon_stop();
 }
 
 static void sig_term_handler(int s)
 {
+    yaz_log(YLOG_LOG, "metaproxy received SIGTERM");
+    yaz_log(YLOG_LOG, "metaproxy stop");
     kill(-process_group, SIGTERM); /* kill all children processes as well */
     _exit(0);
 }
@@ -66,7 +70,7 @@ static void work_common(void *data)
 {
 #if HAVE_UNISTD_H
     process_group = getpgid(0); // save process group ID
-    
+
     signal(SIGTERM, sig_term_handler);
     signal(SIGUSR1, sig_usr1_handler);
 #endif
@@ -74,7 +78,8 @@ static void work_common(void *data)
     routerp->start();
 
     mp::Package pack;
-    pack.router(*routerp).move(); /* should never exit */
+    pack.router(*routerp).move();
+    yaz_log(YLOG_LOG, "metaproxy stop"); /* only for graceful stop */
     _exit(0);
 }
 
@@ -180,7 +185,7 @@ static int sc_main(
         return 1;
     }
     
-    yaz_log(YLOG_LOG, "Metaproxy start " VERSION
+    yaz_log(YLOG_LOG, "metaproxy start " VERSION
 #ifdef VERSION_SHA1
             " " VERSION_SHA1
 #endif