[systemd-devel] Starting service conditionally and retrying when failure

sdrb sdrb at onet.eu
Thu Oct 5 05:57:14 UTC 2017


Mantas Mikulėnas wrote:
> On Thu, Oct 5, 2017 at 7:51 AM, sdrb <sdrb at onet.eu
> <mailto:sdrb at onet.eu>> wrote:
>
>     Hi,
>
>     I'd like to ask how to achieve following functionality in systemd:
>
>     I'd like to start alsa-restore.service only once just after one of
>     the specified files appears. Those file matches: /dev/snd/control*.
>
>     For now I have something like this:
>
>     [Unit]
>     Description=Save/Restore Sound Card State
>     ConditionPathExistsGlob=/dev/snd/control*
>     After=sysinit.target
>
>     [Service]
>     Type=oneshot
>     RemainAfterExit=true
>     ExecStart=-/sbin/alsactl restore -f /etc/asound.state
>
>     [Install]
>     WantedBy=multi-user.target
>
>
>     but during the start when there is no any of /dev/snd/control* files
>     - the condition is not meet and the service is not going up.
>     Those files appears later.
>
>     So that what I'd like to achieve is to wait for appearing of those
>     files and then starting alsa-restore service.
>
>
> Isn't that exactly what ALSA's
> standard /usr/lib/udev/rules.d/90-alsa-restore.rules does?
>


Thanks for all the responses. As I prefer the easiest solutions I have 
chosen Camilo's solution with serviced.path.
Problem fixed. Thanks.



More information about the systemd-devel mailing list