* 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
This commit is contained in:
Eelco Dolstra 2008-05-08 12:27:01 +00:00
parent 5d5f48af83
commit 6f64c4ee0d
3 changed files with 34 additions and 25 deletions

@ -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

@ -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
'';
}

@ -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}
";
'';
}