diff options
author | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2013-09-22 21:31:38 +0200 |
---|---|---|
committer | Eelco Dolstra <eelco.dolstra@logicblox.com> | 2013-09-22 21:39:05 +0200 |
commit | d94aa36f1e49ed38a48c7270d4b5a198744a7dcb (patch) | |
tree | 460c12a0bdb6744d81faa89e4cf5c72efeadd9c6 | |
parent | f19065c283f69e44caeddb20fab9051ac52a31ec (diff) | |
download | nixlib-d94aa36f1e49ed38a48c7270d4b5a198744a7dcb.tar nixlib-d94aa36f1e49ed38a48c7270d4b5a198744a7dcb.tar.gz nixlib-d94aa36f1e49ed38a48c7270d4b5a198744a7dcb.tar.bz2 nixlib-d94aa36f1e49ed38a48c7270d4b5a198744a7dcb.tar.lz nixlib-d94aa36f1e49ed38a48c7270d4b5a198744a7dcb.tar.xz nixlib-d94aa36f1e49ed38a48c7270d4b5a198744a7dcb.tar.zst nixlib-d94aa36f1e49ed38a48c7270d4b5a198744a7dcb.zip |
Fix saving the ALSA sound card state
This didn't work reliably because it raced with the remounting of /. So if you were unlucky, then / was read-only by the time we ran "alsactl store". Now the sound card state is saved before anything is unmounted/remounted.
-rw-r--r-- | modules/services/audio/alsa.nix | 14 |
1 files changed, 8 insertions, 6 deletions
diff --git a/modules/services/audio/alsa.nix b/modules/services/audio/alsa.nix index ed08c653f3ac..6c53ef46ab91 100644 --- a/modules/services/audio/alsa.nix +++ b/modules/services/audio/alsa.nix @@ -52,12 +52,14 @@ in systemd.services."alsa-store" = { description = "Store Sound Card State"; - wantedBy = [ "shutdown.target" ]; - before = [ "shutdown.target" ]; - unitConfig.DefaultDependencies = "no"; - serviceConfig.Type = "oneshot"; - serviceConfig.ExecStart = "${alsaUtils}/sbin/alsactl store --ignore"; - serviceConfig.ExecStartPre = "${pkgs.coreutils}/bin/mkdir -p /var/lib/alsa"; + wantedBy = [ "multi-user.target" ]; + unitConfig.RequiresMountsFor = "/var/lib/alsa"; + serviceConfig = { + Type = "oneshot"; + RemainAfterExit = true; + ExecStart = "${pkgs.coreutils}/bin/mkdir -p /var/lib/alsa"; + ExecStop = "${alsaUtils}/sbin/alsactl store --ignore"; + }; }; }; |