about summary refs log tree commit diff
path: root/modules/services/logging
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2012-07-19 12:48:30 -0400
committerEelco Dolstra <eelco.dolstra@logicblox.com>2012-07-19 12:48:30 -0400
commit425ec4cb00d09a0803d9cc8cdbc554661c704a8a (patch)
treed7f0abaf84c8080eb30224c571a01fa8f0455b52 /modules/services/logging
parent917e53a2d255885835814e7ff30708facca4ca88 (diff)
downloadnixlib-425ec4cb00d09a0803d9cc8cdbc554661c704a8a.tar
nixlib-425ec4cb00d09a0803d9cc8cdbc554661c704a8a.tar.gz
nixlib-425ec4cb00d09a0803d9cc8cdbc554661c704a8a.tar.bz2
nixlib-425ec4cb00d09a0803d9cc8cdbc554661c704a8a.tar.lz
nixlib-425ec4cb00d09a0803d9cc8cdbc554661c704a8a.tar.xz
nixlib-425ec4cb00d09a0803d9cc8cdbc554661c704a8a.tar.zst
nixlib-425ec4cb00d09a0803d9cc8cdbc554661c704a8a.zip
syslogd: Make it work with systemd
Also made syslogd optional (and disabled by default).
Diffstat (limited to 'modules/services/logging')
-rw-r--r--modules/services/logging/syslogd.nix32
1 files changed, 23 insertions, 9 deletions
diff --git a/modules/services/logging/syslogd.nix b/modules/services/logging/syslogd.nix
index bfe7352122c0..2136aaa5586c 100644
--- a/modules/services/logging/syslogd.nix
+++ b/modules/services/logging/syslogd.nix
@@ -36,6 +36,15 @@ in
 
     services.syslogd = {
 
+      enable = mkOption {
+        type = types.bool;
+        default = false;
+        description = ''
+          Whether to enable syslogd.  Note that systemd also logs
+          syslog messages, so you normally don't need to run syslogd.
+        '';
+      };
+
       tty = mkOption {
         type = types.uniq types.string;
         default = "tty10";
@@ -89,22 +98,27 @@ in
 
   ###### implementation
 
-  config = {
+  config = mkIf cfg.enable {
+
+    environment.systemPackages = [ pkgs.sysklogd ];
 
     services.syslogd.extraParams = optional cfg.enableNetworkInput "-r";
 
-    jobs.syslogd =
+    boot.systemd.services."syslog.service" =
       { description = "Syslog daemon";
+      
+        requires = [ "syslog.socket" ];
 
-        #startOn = "started udev";
-
-        environment = { TZ = config.time.timeZone; };
-
-        daemonType = "fork";
+        wantedBy = [ "multi-user.target" "syslog.target" ];
 
-        path = [ pkgs.sysklogd ];
+        environment.TZ = config.time.timeZone;
 
-        exec = "syslogd ${toString cfg.extraParams} -f ${syslogConf}";
+        serviceConfig =
+          ''
+            ExecStart=${pkgs.sysklogd}/sbin/syslogd ${toString cfg.extraParams} -f ${syslogConf} -n
+            # Prevent syslogd output looping back through journald.
+            StandardOutput=null
+          '';
       };
 
   };