From: Ian Jackson Date: Sat, 8 May 2010 13:47:58 +0000 (+0100) Subject: Merge branch 'running' of login.chiark.greenend.org.uk:public-git/inn-innduct X-Git-Tag: innduct-0.1~38 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ian/git?p=innduct.git;a=commitdiff_plain;h=f98819843175b40aad7c083b05d60d3932fadaf5;hp=c04cb15a40225047ead07ec1178550f231658e2f Merge branch 'running' of login.chiark.greenend.org.uk:public-git/inn-innduct --- diff --git a/backends/innduct.c b/backends/innduct.c index 6e9dd26..8104fee 100644 --- a/backends/innduct.c +++ b/backends/innduct.c @@ -365,7 +365,7 @@ static oop_rd_call peer_rd_err, peer_rd_ok; static const char *sitename, *remote_host; static const char *feedfile, *path_run, *path_cli, *path_cli_dir; static int quiet_multiple=0; -static int become_daemon=1, try_filemon=1; +static int interactive=0, try_filemon=1; static int try_stream=1; static int port=119; static const char *inndconffile; @@ -373,7 +373,7 @@ static const char *inndconffile; static int max_connections=10; static int max_queue_per_conn=200; static int target_max_feedfile_size=100000; -static int period_seconds=60; +static int period_seconds=30; static int filepoll_seconds=5; static int max_queue_per_ipf=-1; @@ -554,7 +554,7 @@ int simulate_flush= -1; static void logcore(int sysloglevel, const char *fmt, ...) PRINTF(2,3); static void logcore(int sysloglevel, const char *fmt, ...) { VA; - if (become_daemon) { + if (interactive < 2) { vsyslog(sysloglevel,fmt,al); } else { if (self_pid) fprintf(stderr,"[%lu] ",(unsigned long)self_pid); @@ -3481,7 +3481,7 @@ static void vbadusage(const char *fmt, va_list al) { fprintf(stderr, "bad usage: %s\n" "say --help for help, or read the manpage\n", m); - if (become_daemon) + if (interactive < 2) syslog(LOG_CRIT,"innduct: invoked with bad usage: %s",m); exit(8); } @@ -3641,7 +3641,8 @@ static void help(const Option *o, const char *val); static const Option innduct_options[]= { {'f',"feedfile", "F", &feedfile, op_string }, {'q',"quiet-multiple", 0, &quiet_multiple, op_setint, 1 }, -{0,"no-daemon", 0, &become_daemon, op_setint, 0 }, +{0,"no-daemon", 0, &interactive, op_setint, 1 }, +{0,"interactive", 0, &interactive, op_setint, 2 }, {0,"no-streaming", 0, &try_stream, op_setint, 0 }, {0,"no-filemon", 0, &try_filemon, op_setint, 0 }, {'C',"inndconf", "F", &inndconffile, op_string }, @@ -3802,13 +3803,17 @@ int main(int argc, char **argv) { LIST_INIT(conns); - if (become_daemon) { + if (interactive < 1) { int i; for (i=3; i<255; i++) /* do this now before we open syslog, etc. */ close(i); + } + + if (interactive < 2) openlog("innduct",LOG_NDELAY|LOG_PID,LOG_NEWS); + if (interactive < 1) { int null= open("/dev/null",O_RDWR); if (null<0) sysfatal("failed to open /dev/null"); dup2(null,0); @@ -3842,7 +3847,7 @@ int main(int argc, char **argv) { r= SMsetup(SM_PREOPEN, &val); if (!r) warn("SMsetup SM_PREOPEN failed"); r= SMinit(); if (!r) die("storage manager initialisation (SMinit) failed"); - if (!become_daemon) + if (interactive >= 2) cli_stdio(); cli_init(); diff --git a/doc/man/innduct.8 b/doc/man/innduct.8 index 759abd7..c2a6cef 100644 --- a/doc/man/innduct.8 +++ b/doc/man/innduct.8 @@ -75,6 +75,10 @@ the lock for the site. Without \fB-q\fR, this causes a fatal error to be logged and a nonzero exit. .TP .BR \-\-no-daemon +Do not daemonise. innduct runs in the foreground, but otherwise +operates normally (logging to syslog, etc.). +.TP +.BR \-\-interactive Do not daemonise. innduct runs in the foreground and all messages (including all debug messages) are written to stderr rather than syslog. A control command line is also available on stdin/stdout. @@ -254,6 +258,8 @@ rescan intervals (those specified in this manual as .IR PERIOD ) are rounded up to the next multiple of .IR PERIOD-INTERVAL . +The default is +.BR 30s . .TP .BI \-\-connection-timeout= TIME How long to allow for a connection setup attempt before giving up.