[PATCH weston] compositor: systemd notifications support

Giulio Camuffo giuliocamuffo at gmail.com
Thu Sep 24 08:41:10 PDT 2015


2015-09-24 16:20 GMT+03:00 Pekka Paalanen <ppaalanen at gmail.com>:
> On Thu, 24 Sep 2015 15:53:53 +0300
> Giulio Camuffo <giuliocamuffo at gmail.com> wrote:
>
>> 2015-09-24 14:06 GMT+03:00 Egor Starkov <egor.starkov at ge.com>:
>> > Add systemd status and watchdog notification support.
>> > Feature is not compiled by default and can be enabled by
>> > "--enable-systemd-notify" configuration flag. Watchdog
>> > timeout equals to half of timeout defined by "WATCHDOG_USEC"
>> > environment variable, which is set by "WatchdogSec="
>> > setting in service file.
>>
>> Hi,
>>
>> I don't quite like that we're calling a systemd specific thing in the
>> main(), can't this be called by the logind launcher? Alternatively i
>> guess we could abstract this a way with a new weston_launcher_start()
>> or something like it.
>
> Hi,
>
> the launcher optionally uses logind, not systemd. Logind can exist
> without systemd, so conflating this patch with that doesn't seem
> appropriate either.
>
> We can't call it at the backend init time, because the listening
> sockets are created only afterwards. I suppose we could do it from the
> idle handler? But then we need to set up the idle handler somewhere.
>
> Or would it help if we named it weston_service_start()?
>
>> Besides currently if the notify support is built it will be called
>> even when running nested in X or another wayland compositor, right?
>> Using the launcher would avoid that.
>
> Yes, it will be called, and it's probably unneeded for the nested
> backends. It will also be called when starting weston manually instead
> from a service file, but sd_notify() should handle that just fine.
>
> There is an interesting scenario there. If host Weston is started from
> systemd service, I don't think it removes the systemd variables from
> the environment. If you then start a nested Weston in the same process
> hierarchy, it would think it's running on systemd.
>
> Hmm, should this be turned into a plugin instead?
>
> Making it a plugin seems like the most flexible choice for a user. And
> for packaging.

+1, making it a plugin is a nice idea.

>
>> >
>> > Signed-off-by: Egor Starkov <egor.starkov at ge.com>
>> > Reviewed-by: Pekka Paalanen <pekka.paalanen at collabora.co.uk>
>> > ---
>> >  Makefile.am          |  10 ++++-
>> >  configure.ac         |  13 ++++++
>> >  src/main.c           |   3 ++
>> >  src/systemd-notify.c | 120 +++++++++++++++++++++++++++++++++++++++++++++++++++
>> >  src/systemd-notify.h |  47 ++++++++++++++++++++
>> >  5 files changed, 192 insertions(+), 1 deletion(-)
>> >  create mode 100644 src/systemd-notify.c
>> >  create mode 100644 src/systemd-notify.h
>
>> > diff --git a/src/main.c b/src/main.c
>> > index a98570e..fd32751 100644
>> > --- a/src/main.c
>> > +++ b/src/main.c
>> > @@ -46,6 +46,7 @@
>> >  #include "../shared/helpers.h"
>> >  #include "git-version.h"
>> >  #include "version.h"
>> > +#include "systemd-notify.h"
>> >
>> >  static struct wl_list child_process_list;
>> >  static struct weston_compositor *segv_compositor;
>> > @@ -815,6 +816,8 @@ int main(int argc, char *argv[])
>> >
>> >         weston_compositor_wake(ec);
>> >
>> > +       weston_systemd_service_start(ec);
>> > +
>> >         wl_display_run(display);
>> >
>> >         /* Allow for setting return exit code after
>
>
> Thanks,
> pq


More information about the wayland-devel mailing list