From 6f64c4ee0d430612d69192722d4af22b8e5c9c29 Mon Sep 17 00:00:00 2001 From: Eelco Dolstra Date: Thu, 8 May 2008 12:27:01 +0000 Subject: [PATCH] * syslogd: print messages in the local time zone. * dhcpd: log to facility "local1". * syslogd: send "local1" messages to /var/log/dhcpd, and "mail" messages to /var/log/mail. svn path=/nixos/trunk/; revision=11780 --- upstart-jobs/default.nix | 5 +++-- upstart-jobs/dhcpd.nix | 33 +++++++++++++++++---------------- upstart-jobs/syslogd.nix | 21 ++++++++++++++------- 3 files changed, 34 insertions(+), 25 deletions(-) diff --git a/upstart-jobs/default.nix b/upstart-jobs/default.nix index 557652156f54..2e86c7802375 100644 --- a/upstart-jobs/default.nix +++ b/upstart-jobs/default.nix @@ -71,11 +71,12 @@ let in pkgs.lib.concatLists ( map nameToJobs (attrNames services))); jobs = map makeJob - ( newProposalJobs ++ - [ + (newProposalJobs ++ [ + # Syslogd. (import ../upstart-jobs/syslogd.nix { inherit (pkgs) sysklogd writeText; + inherit config; }) # The udev daemon creates devices nodes and runs programs when diff --git a/upstart-jobs/dhcpd.nix b/upstart-jobs/dhcpd.nix index 95040b3a3d4a..d1f0a9626d5b 100644 --- a/upstart-jobs/dhcpd.nix +++ b/upstart-jobs/dhcpd.nix @@ -6,44 +6,45 @@ let stateDir = "/var/lib/dhcp"; # Don't use /var/state/dhcp; not FHS-compliant. - machines = pkgs.lib.concatStrings (map (machine: " + machines = pkgs.lib.concatMapStrings (machine: '' host ${machine.hostName} { hardware ethernet ${machine.ethernetAddress}; fixed-address ${machine.ipAddress}; } - ") cfg.machines); + '') cfg.machines; - configFile = if cfg.configFile != null then cfg.configFile else pkgs.writeText "dhcpd.conf" " + configFile = if cfg.configFile != null then cfg.configFile else pkgs.writeText "dhcpd.conf" '' default-lease-time 600; max-lease-time 7200; authoritative; ddns-update-style ad-hoc; + log-facility local1; # see dhcpd.nix ${cfg.extraConfig} ${machines} - "; + ''; in { name = "dhcpd"; - job = " -description \"DHCP server\" + job = '' + description "DHCP server" -start on network-interfaces/started -stop on network-interfaces/stop + start on network-interfaces/started + stop on network-interfaces/stop -script + script - mkdir -m 755 -p ${stateDir} + mkdir -m 755 -p ${stateDir} - touch ${stateDir}/dhcpd.leases + touch ${stateDir}/dhcpd.leases - exec ${pkgs.dhcp}/sbin/dhcpd -f -cf ${configFile} \\ - -lf ${stateDir}/dhcpd.leases \\ - ${toString cfg.interfaces} + exec ${pkgs.dhcp}/sbin/dhcpd -f -cf ${configFile} \ + -lf ${stateDir}/dhcpd.leases \ + ${toString cfg.interfaces} -end script - "; + end script + ''; } diff --git a/upstart-jobs/syslogd.nix b/upstart-jobs/syslogd.nix index ef5de195f61a..3b1c9ea59e7d 100644 --- a/upstart-jobs/syslogd.nix +++ b/upstart-jobs/syslogd.nix @@ -1,24 +1,31 @@ -{sysklogd, writeText}: +{sysklogd, writeText, config}: let syslogConf = writeText "syslog.conf" '' - *.* /dev/tty10 + *.* /dev/tty10 - *.=warning;*.=err -/var/log/warn - *.crit /var/log/warn + # "local1" is used for dhcpd messages. + local1.* -/var/log/dhcpd + mail.* -/var/log/mail - *.* -/var/log/messages + *.=warning;*.=err -/var/log/warn + *.crit /var/log/warn + + *.*;mail.none;local1.none -/var/log/messages ''; in { name = "syslogd"; - job = " + job = '' start on udev stop on shutdown + + env TZ=${config.time.timeZone} + respawn ${sysklogd}/sbin/syslogd -n -f ${syslogConf} - "; + ''; }