open Unix
open Printf
+(* Ensures that Whentools module is linked to the daemon. *)
+let _ = Whentools.set_variable
+
let () =
(* Running the daemon as root is a mistake. It must be run as a
* non-root user.
(* chdir / so we don't prevent filesystems from being unmounted. *)
chdir "/";
- (* Close file descriptors. *)
+ (* Close file descriptors, replace with /dev/null. *)
close stdin;
close stdout;
close stderr;
+ ignore (openfile "/dev/null" [O_RDONLY] 0);
+ ignore (openfile "/dev/null" [O_WRONLY] 0);
+ ignore (openfile "/dev/null" [O_WRONLY] 0);
(* Create a new session. *)
ignore (setsid ());