about summary refs log tree commit diff
path: root/nixos/modules/services/hardware/pcscd.nix
diff options
context:
space:
mode:
Diffstat (limited to 'nixos/modules/services/hardware/pcscd.nix')
-rw-r--r--nixos/modules/services/hardware/pcscd.nix11
1 files changed, 9 insertions, 2 deletions
diff --git a/nixos/modules/services/hardware/pcscd.nix b/nixos/modules/services/hardware/pcscd.nix
index 119761c7a446..6e30dfb752d2 100644
--- a/nixos/modules/services/hardware/pcscd.nix
+++ b/nixos/modules/services/hardware/pcscd.nix
@@ -28,9 +28,15 @@ with lib;
 
   config = mkIf config.services.pcscd.enable {
 
+    systemd.sockets.pcscd = {
+      description = "PCSC-Lite Socket";
+      wantedBy = [ "sockets.target" ];
+      before = [ "multi-user.target" ];
+      socketConfig.ListenStream = "/run/pcscd/pcscd.comm";
+    };
+
     systemd.services.pcscd = {
       description = "PCSC-Lite daemon";
-      wantedBy = [ "multi-user.target" ];
       preStart = ''
           mkdir -p /var/lib/pcsc
           rm -Rf /var/lib/pcsc/drivers
@@ -38,7 +44,8 @@ with lib;
       '';
       serviceConfig = {
         Type = "forking";
-        ExecStart = "${pkgs.pcsclite}/sbin/pcscd -c ${cfgFile}";
+        ExecStart = "${pkgs.pcsclite}/sbin/pcscd --auto-exit -c ${cfgFile}";
+        ExecReload = "${pkgs.pcsclite}/sbin/pcscd --hotplug";
       };
     };