summary refs log tree commit diff
diff options
context:
space:
mode:
authorBjørn Forsman <bjorn.forsman@gmail.com>2014-03-14 23:01:32 +0100
committerBjørn Forsman <bjorn.forsman@gmail.com>2014-03-15 17:35:55 +0100
commit28e5f72f05d0ee931bccb87de63184e47cb3173b (patch)
treef001ac9cf97cb54ad014efc2b1aaeb5247e4ba83
parentda184a455f35670cea86c272f618aa10d07e1837 (diff)
downloadnixpkgs-28e5f72f05d0ee931bccb87de63184e47cb3173b.tar
nixpkgs-28e5f72f05d0ee931bccb87de63184e47cb3173b.tar.gz
nixpkgs-28e5f72f05d0ee931bccb87de63184e47cb3173b.tar.bz2
nixpkgs-28e5f72f05d0ee931bccb87de63184e47cb3173b.tar.lz
nixpkgs-28e5f72f05d0ee931bccb87de63184e47cb3173b.tar.xz
nixpkgs-28e5f72f05d0ee931bccb87de63184e47cb3173b.tar.zst
nixpkgs-28e5f72f05d0ee931bccb87de63184e47cb3173b.zip
nixos/gpsd-service: change from deprecated 'jobs' type to 'systemd'
This has the nice side-effect of making gpsd actually run!

Old behaviour (debugLevel=2):

  systemd[1]: gpsd.service holdoff time over, scheduling restart.
  systemd[1]: Stopping GPSD daemon...
  systemd[1]: Starting GPSD daemon...
  systemd[1]: gpsd.service start request repeated too quickly, refusing to start.
  systemd[1]: Failed to start GPSD daemon.
  systemd[1]: Unit gpsd.service entered failed state.

New behaviour (debugLevel=2):

  gpsd[945]: gpsd: launching (Version 2.95)
  systemd[1]: Started GPSD daemon.
  gpsd[945]: gpsd: listening on port 2947
  gpsd[945]: gpsd: running with effective group ID 27
  gpsd[945]: gpsd: running with effective user ID 23
  gpsd[945]: gpsd: stashing device /dev/ttyUSB0 at slot 0
-rw-r--r--nixos/modules/services/misc/gpsd.nix25
1 files changed, 13 insertions, 12 deletions
diff --git a/nixos/modules/services/misc/gpsd.nix b/nixos/modules/services/misc/gpsd.nix
index bc1d1f4575a..a92e06f0902 100644
--- a/nixos/modules/services/misc/gpsd.nix
+++ b/nixos/modules/services/misc/gpsd.nix
@@ -85,19 +85,20 @@ in
         inherit gid;
       };
 
-    jobs.gpsd =
-      { description = "GPSD daemon";
-
-        startOn = "ip-up";
-
-        exec =
-          ''
-            ${pkgs.gpsd}/sbin/gpsd -D "${toString cfg.debugLevel}"  \
-              -S "${toString cfg.port}"                             \
-              ${if cfg.readonly then "-b" else ""}                  \
-              "${cfg.device}"
-          '';
+    systemd.services.gpsd = {
+      description = "GPSD daemon";
+      wantedBy = [ "multi-user.target" ];
+      after = [ "network.target" ];
+      serviceConfig = {
+        Type = "forking";
+        ExecStart = ''
+          ${pkgs.gpsd}/sbin/gpsd -D "${toString cfg.debugLevel}"  \
+            -S "${toString cfg.port}"                             \
+            ${if cfg.readonly then "-b" else ""}                  \
+            "${cfg.device}"
+        '';
       };
+    };
 
   };