chiark / gitweb /
Report input file start to debug log
[innduct.git] / duct.c
diff --git a/duct.c b/duct.c
index 489fb92ee203c4c2fc740d83d7b52a1da50d4874..55b98772da9d9f533ead5e1a4754add0ad9ef7b9 100644 (file)
--- a/duct.c
+++ b/duct.c
@@ -44,6 +44,7 @@ pid_t self_pid;
 int *lowvol_perperiod;
 int lowvol_circptr;
 int lowvol_total; /* does not include current period */
+int until_stats_log=1;
 
 /*---------- configuration option variables ----------*/
 /* when changing defaults, remember to update the manpage */
@@ -77,6 +78,7 @@ int backlog_spontrescan_periods=300;
 int spontaneous_flush_periods=100000;
 int max_separated_periods=2000;
 int need_activity_periods=1000;
+int stats_log_periods=2500;
 int lowvol_thresh=3;
 int lowvol_periods=1000;
 
@@ -169,6 +171,9 @@ void period(void) {
   free(dipf_flushing);
   free(dipf_backlog);
 
+  if (until_stats_log) until_stats_log--;
+  else showstats();
+
   if (until_connect) until_connect--;
 
   inputfile_queue_check_expired(backlog_input_file);
@@ -378,6 +383,7 @@ static const Option innduct_options[]= {
 {0,"max-flush-interval",     "PERIOD", &spontaneous_flush_periods,op_seconds },
 {0,"flush-finish-timeout",   "PERIOD", &max_separated_periods,    op_seconds },
 {0,"idle-timeout",           "PERIOD", &need_activity_periods,    op_seconds },
+{0,"stats-log-interval",     "PERIOD", &stats_log_periods,        op_seconds },
 {0,"low-volume-thresh",      "PERIOD", &lowvol_thresh,            op_integer },
 {0,"low-volume-window",      "PERIOD", &lowvol_periods,           op_seconds },
 
@@ -472,6 +478,7 @@ int main(int argc, char **argv) {
   convert_to_periods_rndup(&spontaneous_flush_periods);
   convert_to_periods_rndup(&max_separated_periods);
   convert_to_periods_rndup(&need_activity_periods);
+  convert_to_periods_rndup(&stats_log_periods);
   convert_to_periods_rndup(&lowvol_periods);
 
   if (max_bad_data_ratio < 0 || max_bad_data_ratio > 100)
@@ -549,13 +556,13 @@ int main(int argc, char **argv) {
     dup2(null,2);
     xclose(null, "/dev/null original fd",0);
 
-    pid_t child1= xfork("daemonise first fork");
+    pid_t child1= xfork_bare("daemonise first fork");
     if (child1) _exit(0);
 
     pid_t sid= setsid();
     if (sid == -1) sysdie("setsid failed");
 
-    pid_t child2= xfork("daemonise second fork");
+    pid_t child2= xfork_bare("daemonise second fork");
     if (child2) _exit(0);
   }