about summary refs log tree commit diff
path: root/nixos/modules/services/logging
diff options
context:
space:
mode:
authorRickard Nilsson <rickynils@gmail.com>2014-10-14 15:20:27 +0200
committerRickard Nilsson <rickynils@gmail.com>2014-10-14 15:38:42 +0200
commit54a0ac090c9c7cda53a110e4790d22d59e66eef3 (patch)
tree62be6dc43be91af49598fe8b373b43ebaf2fffbf /nixos/modules/services/logging
parent958193aeb4dd9cce628f97a566d032238f3707a0 (diff)
downloadnixlib-54a0ac090c9c7cda53a110e4790d22d59e66eef3.tar
nixlib-54a0ac090c9c7cda53a110e4790d22d59e66eef3.tar.gz
nixlib-54a0ac090c9c7cda53a110e4790d22d59e66eef3.tar.bz2
nixlib-54a0ac090c9c7cda53a110e4790d22d59e66eef3.tar.lz
nixlib-54a0ac090c9c7cda53a110e4790d22d59e66eef3.tar.xz
nixlib-54a0ac090c9c7cda53a110e4790d22d59e66eef3.tar.zst
nixlib-54a0ac090c9c7cda53a110e4790d22d59e66eef3.zip
nixos/syslog-ng: Replace option serviceName with listenToJournal. Fix socket activation
Diffstat (limited to 'nixos/modules/services/logging')
-rw-r--r--nixos/modules/services/logging/syslog-ng.nix24
1 files changed, 15 insertions, 9 deletions
diff --git a/nixos/modules/services/logging/syslog-ng.nix b/nixos/modules/services/logging/syslog-ng.nix
index 4a16b19134a0..64b288a11cd3 100644
--- a/nixos/modules/services/logging/syslog-ng.nix
+++ b/nixos/modules/services/logging/syslog-ng.nix
@@ -44,13 +44,13 @@ in {
           The package providing syslog-ng binaries.
         '';
       };
-      serviceName = mkOption {
-        type = types.str;
-        default = "syslog-ng";
+      listenToJournal = mkOption {
+        type = types.bool;
+        default = true;
         description = ''
-          The name of the systemd service that runs syslog-ng. Set this to
-          <literal>syslog</literal> if you want journald to automatically
-          forward all logs to syslog-ng.
+          Whether syslog-ng should listen to the syslog socket used
+          by journald, and therefore receive all logs that journald
+          produces.
         '';
       };
       extraModulePaths = mkOption {
@@ -76,12 +76,18 @@ in {
   };
 
   config = mkIf cfg.enable {
-    systemd.services."${cfg.serviceName}" = {
-      wantedBy = [ "multi-user.target" ];
+    systemd.sockets.syslog = mkIf cfg.listenToJournal {
+      wantedBy = [ "sockets.target" ];
+      socketConfig.Service = "syslog-ng.service";
+    };
+    systemd.services.syslog-ng = {
+      description = "syslog-ng daemon";
       preStart = "mkdir -p /{var,run}/syslog-ng";
+      wantedBy = optional (!cfg.listenToJournal) "multi-user.target";
+      after = [ "multi-user.target" ]; # makes sure hostname etc is set
       serviceConfig = {
         Type = "notify";
-        Sockets = "syslog.socket";
+        Sockets = if cfg.listenToJournal then "syslog.socket" else null;
         StandardOutput = "null";
         Restart = "on-failure";
         ExecStart = "${cfg.package}/sbin/syslog-ng ${concatStringsSep " " syslogngOptions}";