[
("-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;
("-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 _ =
- logprint "Starting Vsys v%s\n" Globals.vsys_version;
- print "Starting Vsys v%s\n" Globals.vsys_version;
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
print "Daemonizing\n";
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
logprint "Slice %s (%s)\n" x y;