X-Git-Url: http://git.annexia.org/?a=blobdiff_plain;f=daemon%2Fwhenjobsd.ml;h=4846279525f25c3749ea8e212f3f4408c825f917;hb=9f7c94086330deb1c6dc0c51355a60b19ff78055;hp=3f9fe89912e6d5734d353b319727cd2e13188de4;hpb=ae04f3d8ec2b315f603dc266eab5a4ea73877931;p=whenjobs.git diff --git a/daemon/whenjobsd.ml b/daemon/whenjobsd.ml index 3f9fe89..4846279 100644 --- a/daemon/whenjobsd.ml +++ b/daemon/whenjobsd.ml @@ -19,6 +19,9 @@ 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. @@ -101,10 +104,13 @@ Options: (* 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 ()); @@ -117,14 +123,11 @@ Options: ); (* Start syslog. *) - 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 () = - let file = sprintf "%s/jobs.cmo" jobsdir in - if Sys.file_exists file then - try Daemon.reload_file () with Failure _ -> () in + Syslog.notice "daemon started: version=%s uid=%d home=%s native=%b" + Config.package_version euid home Dynlink.is_native; + + (* If there is a jobs__*.cmo/jobs__*.cmxs file, load it. *) + (try Daemon.reload_files () with Failure _ -> ()); (* Go into main loop. *) Daemon.main_loop ()