X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=main.ml;h=7f91dbf967fa9f18cbacd8efd42a627eabea6100;hb=0a4a3a68d48188e50ae321557f4527a8dffaf73a;hp=872dc5959adc02bac53fbd09b3b2ae6e74fe4a7f;hpb=ae0378a578b7c73091fdc46769ba7a5971ef0939;p=vsys.git diff --git a/main.ml b/main.ml index 872dc59..7f91dbf 100644 --- 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,14 +25,18 @@ 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 _ = - 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 "; + 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"; @@ -54,6 +59,8 @@ 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 logprint "Slice %s (%s)\n" x y;