From a538066d5acd059903cff5103d944cad1fb5c7b2 Mon Sep 17 00:00:00 2001 From: Martin Pool Date: Wed, 5 Dec 2001 13:03:16 +0000 Subject: [PATCH] Add --no-detach option for W32, daemontools, etc. --- clientserver.c | 3 ++- options.c | 2 ++ rsync.h | 5 +++++ 3 files changed, 9 insertions(+), 1 deletion(-) diff --git a/clientserver.c b/clientserver.c index e8dba431..1b3801bc 100644 --- a/clientserver.c +++ b/clientserver.c @@ -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); diff --git a/options.c b/options.c index cc0533de..0a6b10e1 100644 --- 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 0346c6c8..191ea5e4 100644 --- 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; -- 2.34.1