[systemd-devel] "StopWhenUnneeded"-like option for socket-activated services?

David Herrmann dh.herrmann at gmail.com
Mon Sep 21 10:36:15 PDT 2015


Hi

On Thu, Sep 17, 2015 at 1:02 PM, LaƩrcio de Sousa
<laerciosousa at sme-mogidascruzes.sp.gov.br> wrote:
> Hi there!
>
> I have a curiosity: is there some way to systemd to detect when all
> connections to a given socket are closed, so that the service assigned to
> that socket unit can be automatically stopped (but the socket unit itself
> keeps listening)? Something similar to StopWhenUnneeded option, which makes
> a service stop automatically when its dependants have stopped.

If your service is socket-activated, you should be able to shutdown
via sd_notify(false, "STOPPING=1") on idle. This way, systemd will
restart your unit on the next incoming connection.

Thanks
David

> My practical example: I'm trying new possibilities with my single-GPU
> multi-seat setup (a bare Xorg server spanning all video outputs, on top of
> which a Xephyr instance is started for each output/seat). My current system
> starts a socket-activated systemd service for the bare Xorg when my LightDM
> starts its first Xephyr instance. I would like to stop the bare Xorg service
> when all Xephyr-based seats are removed (e.g. their master devices are
> unplugged or LightDM service is stopped).
>
> Thanks in advance!


More information about the systemd-devel mailing list