diff options
author | Franz Pletz <fpletz@fnordicwalking.de> | 2018-07-15 21:39:07 +0000 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-15 21:39:07 +0000 |
commit | 8bda93f0b2cb32d3002a0f4cc26326abc44697de (patch) | |
tree | 44107c6ba5dc058448ff2e5b27d00c40f399089d /nixos | |
parent | a2eb1703e15bb809fb2ecffeaba8ff532447c4b7 (diff) | |
parent | d81f819db35fe833d935486439d085bd5c3e85da (diff) | |
download | nixlib-8bda93f0b2cb32d3002a0f4cc26326abc44697de.tar nixlib-8bda93f0b2cb32d3002a0f4cc26326abc44697de.tar.gz nixlib-8bda93f0b2cb32d3002a0f4cc26326abc44697de.tar.bz2 nixlib-8bda93f0b2cb32d3002a0f4cc26326abc44697de.tar.lz nixlib-8bda93f0b2cb32d3002a0f4cc26326abc44697de.tar.xz nixlib-8bda93f0b2cb32d3002a0f4cc26326abc44697de.tar.zst nixlib-8bda93f0b2cb32d3002a0f4cc26326abc44697de.zip |
Merge pull request #37096 from jfrankenau/feat-cups-socket
nixos/cupsd: Add option to start when needed
Diffstat (limited to 'nixos')
-rw-r--r-- | nixos/modules/services/printing/cupsd.nix | 17 |
1 files changed, 16 insertions, 1 deletions
diff --git a/nixos/modules/services/printing/cupsd.nix b/nixos/modules/services/printing/cupsd.nix index b074d15cbec1..dbf18ec1d114 100644 --- a/nixos/modules/services/printing/cupsd.nix +++ b/nixos/modules/services/printing/cupsd.nix @@ -124,6 +124,16 @@ in ''; }; + startWhenNeeded = mkOption { + type = types.bool; + default = false; + description = '' + If set, CUPS is socket-activated; that is, + instead of having it permanently running as a daemon, + systemd will start it on the first incoming connection. + ''; + }; + listenAddresses = mkOption { type = types.listOf types.str; default = [ "localhost:631" ]; @@ -287,8 +297,13 @@ in systemd.packages = [ cups.out ]; + systemd.sockets.cups = mkIf cfg.startWhenNeeded { + wantedBy = [ "sockets.target" ]; + listenStreams = map (x: replaceStrings ["localhost"] ["127.0.0.1"] (removePrefix "*:" x)) cfg.listenAddresses; + }; + systemd.services.cups = - { wantedBy = [ "multi-user.target" ]; + { wantedBy = optionals (!cfg.startWhenNeeded) [ "multi-user.target" ]; wants = [ "network.target" ]; after = [ "network.target" ]; |