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 ());
);
(* Start syslog. *)
- Syslog.notice "daemon started: uid=%d home=%s" euid home;
+ Syslog.notice "daemon started: version=%s uid=%d home=%s"
+ Config.package_version euid home;
(* If there is a jobs.cmo file, load it. *)
let () =