let rec f _ = ignore (Lwt_unix.sleep 1.0);
              f ()
let _ = Lwt_unix.on_signal 2 (fun _ -> print_endline "sig")
let _ = 
  print_endline "start";
  ignore (Lwt_main.at_exit (fun () -> Lwt.return(print_endline "at_exit")));
  Lwt_main.run (f ()) 

上記のように書いてみましたが、Ctrl-CでSIGINTを送っても割り込めないようです。
きちんと割り込めるやり方か、at_exitと共通化できるようなもっと良い方法があれば教えて下さい。
環境はOCaml4.02.1, lwt2.4.8です。