[alsa-devel] [PATCH alsa-utils] alsactl: Manage both save and restore in a single unit
Takashi Iwai
tiwai at suse.de
Tue Sep 29 18:03:57 CEST 2015
With RemainAfterExit=true, we can manage both save and restore of the
card state in a single unit file. This will fix also the case where
systemd reloads the service; with two individual units, it will
restore the previous state before saving, and may lead to inconsistent
state suddenly.
Also fix alsa-state.service as well to make both start and stop
working in a simpler way.
Bugzilla: https://bugzilla.novell.com/show_bug.cgi?id=929619
Signed-off-by: Takashi Iwai <tiwai at suse.de>
---
alsactl/Makefile.am | 14 ++------------
alsactl/alsa-restore.service.in | 7 +++----
alsactl/alsa-state.service.in | 3 ---
alsactl/alsa-store.service.in | 16 ----------------
4 files changed, 5 insertions(+), 35 deletions(-)
delete mode 100644 alsactl/alsa-store.service.in
diff --git a/alsactl/Makefile.am b/alsactl/Makefile.am
index 47f06e906ced..cac8094687de 100644
--- a/alsactl/Makefile.am
+++ b/alsactl/Makefile.am
@@ -25,20 +25,15 @@ if HAVE_SYSTEMD
systemdsystemunit_DATA = \
alsa-state.service \
- alsa-restore.service \
- alsa-store.service
+ alsa-restore.service
install-data-hook:
$(MKDIR_P) -m 0755 \
- $(DESTDIR)$(systemdsystemunitdir)/basic.target.wants \
- $(DESTDIR)$(systemdsystemunitdir)/shutdown.target.wants
+ $(DESTDIR)$(systemdsystemunitdir)/basic.target.wants
( cd $(DESTDIR)$(systemdsystemunitdir)/basic.target.wants && \
rm -f alsa-state.service alsa-restore.service && \
$(LN_S) ../alsa-state.service alsa-state.service && \
$(LN_S) ../alsa-restore.service alsa-restore.service)
- ( cd $(DESTDIR)$(systemdsystemunitdir)/shutdown.target.wants && \
- rm -f alsa-store.service && \
- $(LN_S) ../alsa-store.service alsa-store.service )
endif
@@ -54,22 +49,17 @@ alsa-state.service: alsa-state.service.in
alsa-restore.service: alsa-restore.service.in
$(edit)
-alsa-store.service: alsa-store.service.in
- $(edit)
-
90-alsa-restore.rules: 90-alsa-restore.rules.in
$(edit)
EXTRA_DIST += \
alsa-state.service.in \
alsa-restore.service.in \
- alsa-store.service.in \
90-alsa-restore.rules.in
CLEANFILES = \
alsa-state.service \
alsa-restore.service \
- alsa-store.service \
90-alsa-restore.rules
%.7: %.xml
diff --git a/alsactl/alsa-restore.service.in b/alsactl/alsa-restore.service.in
index d1a74d637457..2884098c26f0 100644
--- a/alsactl/alsa-restore.service.in
+++ b/alsactl/alsa-restore.service.in
@@ -4,15 +4,14 @@
#
[Unit]
-Description=Restore Sound Card State
+Description=Save/Restore Sound Card State
ConditionPathExists=!@daemonswitch@
ConditionPathExistsGlob=/dev/snd/control*
-DefaultDependencies=no
After=alsa-state.service
-Before=shutdown.target
-Conflicts=shutdown.target
[Service]
Type=oneshot
+RemainAfterExit=true
ExecStart=- at sbindir@/alsactl restore
+ExecStop=- at sbindir@/alsactl store
StandardOutput=syslog
diff --git a/alsactl/alsa-state.service.in b/alsactl/alsa-state.service.in
index 56c12c104565..f1321d63a0ca 100644
--- a/alsactl/alsa-state.service.in
+++ b/alsactl/alsa-state.service.in
@@ -6,10 +6,7 @@
[Unit]
Description=Manage Sound Card State (restore and store)
ConditionPathExists=@daemonswitch@
-DefaultDependencies=no
After=sysinit.target
-Before=shutdown.target
-Conflicts=shutdown.target
[Service]
Type=simple
diff --git a/alsactl/alsa-store.service.in b/alsactl/alsa-store.service.in
deleted file mode 100644
index c89cfff04f35..000000000000
--- a/alsactl/alsa-store.service.in
+++ /dev/null
@@ -1,16 +0,0 @@
-#
-# Note that two different ALSA card state management schemes exist and they
-# can be switched using a file exist check - /etc/alsa/state-daemon.conf .
-#
-
-[Unit]
-Description=Store Sound Card State
-ConditionPathExists=!@daemonswitch@
-ConditionPathExistsGlob=/dev/snd/control*
-DefaultDependencies=no
-Before=shutdown.target
-
-[Service]
-Type=oneshot
-ExecStart=@sbindir@/alsactl store
-StandardOutput=syslog
--
2.5.3
More information about the Alsa-devel
mailing list