On Sun, 24 Jan 2016 11:48:09 +0100, Tom Yan wrote: > > Since v18: > http://cgit.freedesktop.org/systemd/systemd/commit/?id=88dfa2938af09e511e4911e6984360ded0e2cd8d > http://cgit.freedesktop.org/systemd/systemd/tag/?id=v18 OK, it's old enough, but maybe safer to have some check in configure script? Takashi > > On 24 January 2016 at 15:56, Takashi Iwai <tiwai@xxxxxxx> wrote: > > On Sun, 24 Jan 2016 01:30:23 +0100, > > tom.ty89@xxxxxxxxx wrote: > >> > >> From: Tom Yan <tom.ty89@xxxxxxxxx> > >> > >> Use sound.target to trigger the service, which is the proper way > >> to start a service related to sound card. This also makes sure that > >> the service will only start if a sound card exists in the system. > > > > Has this target existed in all released versions of systemd? > > Just to be sure... > > > >> basic.target is too early for either of the service: > >> 1. alsa-state.service will spam "No soundcards found" on every boot > > > > Actually this should be seen as a bug of alsactl itself. In the > > daemon mode, it should be allowed to run without the sound card at > > start. > > > >> 2. alsa-restore.service will never start because of > >> "ConditionPathExistsGlob=/dev/snd/control*" > > > > ... unless reloading or starting the service later. > > > >> "After=sysinit.target" is removed from alsa-state.service because it > >> never made any sense. > >> > >> "After=alsa-state.service" is removed from alsa-restore.service because > >> it is completely unnecessary with the daemon conf switch. > >> > >> Now either of serivce is enough to manage the state all by itself without > >> the udev rules if only ONE sound card exists in the system, while the rules > >> are still necessary in system with multiple sound cards. > > > > ... or with a hotplug device. > > > >> "StandardOutput=syslog" is also removed from alsa-restore.service because it > >> makes little sense (if it has ever switched the behaviour away from default). > > > > That's superfluous indeed. > > > > > > thanks, > > > > Takashi > > > > > >> Signed-off-by: Tom Yan <tom.ty89@xxxxxxxxx> > >> > >> diff --git a/alsactl/Makefile.am b/alsactl/Makefile.am > >> index cac8094..90fab9d 100644 > >> --- a/alsactl/Makefile.am > >> +++ b/alsactl/Makefile.am > >> @@ -29,8 +29,8 @@ systemdsystemunit_DATA = \ > >> > >> install-data-hook: > >> $(MKDIR_P) -m 0755 \ > >> - $(DESTDIR)$(systemdsystemunitdir)/basic.target.wants > >> - ( cd $(DESTDIR)$(systemdsystemunitdir)/basic.target.wants && \ > >> + $(DESTDIR)$(systemdsystemunitdir)/sound.target.wants > >> + ( cd $(DESTDIR)$(systemdsystemunitdir)/sound.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) > >> diff --git a/alsactl/alsa-restore.service.in b/alsactl/alsa-restore.service.in > >> index 2884098..fbcf983 100644 > >> --- a/alsactl/alsa-restore.service.in > >> +++ b/alsactl/alsa-restore.service.in > >> @@ -6,12 +6,9 @@ > >> [Unit] > >> Description=Save/Restore Sound Card State > >> ConditionPathExists=!@daemonswitch@ > >> -ConditionPathExistsGlob=/dev/snd/control* > >> -After=alsa-state.service > >> > >> [Service] > >> Type=oneshot > >> RemainAfterExit=true > >> ExecStart=-@sbindir@/alsactl restore > >> ExecStop=-@sbindir@/alsactl store > >> -StandardOutput=syslog > >> diff --git a/alsactl/alsa-state.service.in b/alsactl/alsa-state.service.in > >> index f1321d6..5a8fe5e 100644 > >> --- a/alsactl/alsa-state.service.in > >> +++ b/alsactl/alsa-state.service.in > >> @@ -6,7 +6,6 @@ > >> [Unit] > >> Description=Manage Sound Card State (restore and store) > >> ConditionPathExists=@daemonswitch@ > >> -After=sysinit.target > >> > >> [Service] > >> Type=simple > >> -- > >> 2.7.0 > >> > _______________________________________________ Alsa-devel mailing list Alsa-devel@xxxxxxxxxxxxxxxx http://mailman.alsa-project.org/mailman/listinfo/alsa-devel