[systemd-devel] Service reactivation with device plugging

Kok, Auke-jan H auke-jan.h.kok at intel.com
Tue Jul 3 17:20:54 PDT 2012


On Tue, Jul 3, 2012 at 4:49 PM, Rob Spanton <rspanton at zepler.net> wrote:
> Hi,
>
> I wrote:
>> I was recently working on an embedded system that had a daemon
>> [ ...which] needed to be run when both [serial] devices were plugged
>> in.  If any of the devices was unplugged, the daemon would exit, and
>> would need to be restarted the next time both devices were plugged in.
>
> Auke wrote:
>> why not write a middle-man layer that uses socket activation?
>
> My understanding of socket activation is that it is for starting a
> service when something attempts to connect to a socket.  I don't
> understand how this relates to my situation with two serial devices.
>
>> alternatively, you could use inotify and immediately start your
>> daemon.
>
> Presumably you mean by writing a second daemon that uses inotify?  Yes,
> I can see that this would solve my problem, however I was wondering
> whether there was a simpler way of doing it just using systemd.

I'm more throwing ideas out there at this point, I don't know the
whole situation.

First, things can be a lot easier if components use proper methods.
For device nodes, udev rules should be the way to go.

You can have udev do things for you if the devices appear, so that
should be one line of approach: have udev start something for you.

You could make a program that just exits if only one device is
available, and runs if two are available. Once udev sees the second
device, things will just work.

Auke


More information about the systemd-devel mailing list