Add --no-detach option for W32, daemontools, etc.
authorMartin Pool <mbp@samba.org>
Wed, 5 Dec 2001 13:03:16 +0000 (13:03 +0000)
committerMartin Pool <mbp@samba.org>
Wed, 5 Dec 2001 13:03:16 +0000 (13:03 +0000)
clientserver.c
options.c
rsync.h

index e8dba43..1b3801b 100644 (file)
@@ -501,7 +501,8 @@ int daemon_main(void)
                return start_daemon(STDIN_FILENO);
        }
 
-       become_daemon();
+       if (!global_opts.no_detach)
+           become_daemon();
 
        if (!lp_load(config_file, 1)) {
                exit_cleanup(RERR_SYNTAX);
index cc0533d..0a6b10e 100644 (file)
--- a/options.c
+++ b/options.c
@@ -212,6 +212,7 @@ void usage(enum logcode F)
   rprintf(F,"     --include-from=FILE     don't exclude patterns listed in FILE\n");
   rprintf(F,"     --version               print version number\n");  
   rprintf(F,"     --daemon                run as a rsync daemon\n");  
+  rprintf(F,"     --no-detach             do not detach from the parent\n");  
   rprintf(F,"     --address               bind to the specified address\n");  
   rprintf(F,"     --config=FILE           specify alternate rsyncd.conf file\n");  
   rprintf(F,"     --port=PORT             specify alternate rsyncd port number\n");
@@ -298,6 +299,7 @@ static struct poptOption long_options[] = {
   /* TODO: Should this take an optional int giving the compression level? */
   {"compress",        'z', POPT_ARG_NONE,   &do_compression},
   {"daemon",           0,  POPT_ARG_NONE,   &am_daemon},
+  {"no-detach",        0,  POPT_ARG_NONE,   &global_opts.no_detach},
   {"stats",            0,  POPT_ARG_NONE,   &do_stats},
   {"progress",         0,  POPT_ARG_NONE,   &do_progress},
   {"partial",          0,  POPT_ARG_NONE,   &keep_partial},
diff --git a/rsync.h b/rsync.h
index 0346c6c..191ea5e 100644 (file)
--- a/rsync.h
+++ b/rsync.h
@@ -566,6 +566,11 @@ extern int verbose;
 extern struct global_opts {
        /** Network address family. **/
        int af_hint;
+       
+       /** Do not go into the background when run as --daemon.  Good
+        * for debugging and required for running as a service on W32,
+        * or under Unix process-monitors. **/
+       int no_detach;
 } global_opts;