nixos lirc: fix owner-ship of runtime directory
This commit is contained in:
parent
ca3f089a83
commit
4bb55815be
|
@ -49,6 +49,7 @@ in {
|
||||||
description = "LIRC daemon socket";
|
description = "LIRC daemon socket";
|
||||||
wantedBy = [ "sockets.target" ];
|
wantedBy = [ "sockets.target" ];
|
||||||
socketConfig = {
|
socketConfig = {
|
||||||
|
# default search path
|
||||||
ListenStream = "/run/lirc/lircd";
|
ListenStream = "/run/lirc/lircd";
|
||||||
SocketUser = "lirc";
|
SocketUser = "lirc";
|
||||||
SocketMode = "0660";
|
SocketMode = "0660";
|
||||||
|
@ -66,9 +67,19 @@ in {
|
||||||
serviceConfig = {
|
serviceConfig = {
|
||||||
RuntimeDirectory = "lirc";
|
RuntimeDirectory = "lirc";
|
||||||
|
|
||||||
# socket lives in runtime directory; we have to keep is available
|
# Service runtime directory and socket share same folder.
|
||||||
|
# Following hacks are necessary to get everything right:
|
||||||
|
|
||||||
|
# 1. prevent socket deletion during stop and restart
|
||||||
RuntimeDirectoryPreserve = true;
|
RuntimeDirectoryPreserve = true;
|
||||||
|
|
||||||
|
# 2. fix runtime folder owner-ship, happens when socket activation
|
||||||
|
# creates the folder
|
||||||
|
PermissionsStartOnly = true;
|
||||||
|
ExecStartPre = [
|
||||||
|
"${pkgs.coreutils}/bin/chown lirc /run/lirc/"
|
||||||
|
];
|
||||||
|
|
||||||
ExecStart = ''
|
ExecStart = ''
|
||||||
${pkgs.lirc}/bin/lircd --nodaemon \
|
${pkgs.lirc}/bin/lircd --nodaemon \
|
||||||
${escapeShellArgs cfg.extraArguments} \
|
${escapeShellArgs cfg.extraArguments} \
|
||||||
|
|
Loading…
Reference in New Issue