On Fri, 21.11.14 13:52, Peter Lemenkov (lemenkov@xxxxxxxxx) wrote: > Hello All! > Perhaps a silly question but I'm stuck and need your help, my fellow fedorians. > > I've got a service foo.service which Requires=bar.socket (which in > turn runs bar.service). So if I start foo.service then systemd opens > bar.socket, captures first packet and runs bar.service (which isn't > intended to be started manually btw). So far everything works as > expected. > > I was asked if it's possible to automatically stop bar.service (and > bar.socket) if no services which requires these two are active. I > played with StopWhenUnneeded + > BindsTo but without much success. > > I believe this sounds like a generic pattern so perhaps someone > already implemented it. Could somebody point me on working example? > Any other help would be greatly appreciated. This concept we usually refer to as "exit-on-idle". It is impossible to detect from the outside if a daemon is fully idle though (example: some client connects to a daemon, passes it some request, then disconnects. daemon then processes the request eventually calling the client back when it is ready. there's no way from the outside to see if the daemon is still processing the request, or is just idly hanging around), hence a scheme like this cannot be implemented from the outside, it needs to be implemented by the daemon in question itself. For networked services a logic like this is relatively easy to implement: if a daemon figures out that it has nothing to process anymore, it can simply exit(), and that's it. Lennart -- Lennart Poettering, Red Hat -- devel mailing list devel@xxxxxxxxxxxxxxxxxxxxxxx https://admin.fedoraproject.org/mailman/listinfo/devel Fedora Code of Conduct: http://fedoraproject.org/code-of-conduct