2012/7/4 Kok, Auke-jan H <[email protected]>: > On Tue, Jul 3, 2012 at 4:49 PM, Rob Spanton <[email protected]> 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 Seconded. For clues on how to let udev start things for you see the systemd.device man page A unit like this should work with udev activation:
[Unit] Description=... BindTo=dev-serial-a.device dev-serial-b.device After=dev-serial-a.device dev-serial-b.device [Service] ExecStart=/usr/bin/my-magic-service Type=notify Mirco _______________________________________________ systemd-devel mailing list [email protected] http://lists.freedesktop.org/mailman/listinfo/systemd-devel
