add -fPIC option to the C compiler, required in f31
[vsys.git] / main.ml
diff --git a/main.ml b/main.ml
index 0abccdb..7f91dbf 100644 (file)
--- a/main.ml
+++ b/main.ml
@@ -15,6 +15,7 @@ let cmdspeclist =
   [
     ("-daemon",Arg.Set(daemonize), "Daemonize");
     ("-conffile",Arg.Set_string(Globals.conffile), "Config file");
+    ("-logfile",Arg.Set_string(Globals.log_filepath), "Log file");
     ("-backend",Arg.Set_string(Globals.backend), "Backend directory");
     ("-frontend",Arg.Tuple[Arg.String(fun s->cur_dir:=s);
                            Arg.String(fun s->cur_slice:=s;
@@ -24,17 +25,21 @@ let cmdspeclist =
     ("-failsafe",Arg.Set(Globals.failsafe), "Never crash. Be stupid, but never crash. Use at your own risk.");
   ]
 
+let sighup_handle s =
+  print "Received sighup. Running GC major pass";
+  Gc.major ()
+
 let _ =
-  printf "Starting Vsys v%s\n" Globals.vsys_version;flush stdout;
-  fprintf logfd "Starting Vsys v%s\n" Globals.vsys_version;flush logfd;
   Arg.parse cmdspeclist (fun x->()) "Usage: vsys <list of mount points>";  
+  Globals.logfd:=open_out_gen [Open_append;Open_creat] 0o644 !log_filepath;
   if (!Globals.backend == "") then
     printf "Try vsys --help\n"
   else
     begin
+      logprint "Starting Vsys v%s\n" Globals.vsys_version;
       if (!daemonize) then
         begin
-          printf "Daemonizing\n";flush Pervasives.stdout;
+          print "Daemonizing\n";
           let child = Unix.fork () in
             if (child <> 0) then
               begin
@@ -54,10 +59,11 @@ let _ =
             input_file_list:=List.concat [!input_file_list;frontends]
         end;
 
+      Sys.set_signal Sys.sigusr1 (Sys.Signal_handle sighup_handle);
+
       let felst = List.map 
                     (fun lst->let (x,y)=lst in 
-                       fprintf logfd "Slice %s (%s)\n" x y;
-                       flush logfd;
+                       logprint "Slice %s (%s)\n" x y;
                        new frontendHandler lst) 
                     !input_file_list in
       let _ = new backendHandler !Globals.backend felst in