diff options
author | Benjamin Berg <bberg@redhat.com> | 2019-11-28 14:56:30 +0100 |
---|---|---|
committer | Ray Strode <halfline@gmail.com> | 2020-05-06 13:30:48 +0000 |
commit | e5ccfa69937428ee6aa4088291a75f6c230bad0f (patch) | |
tree | 408d7566763b75e11158e2a0968f708b4f1c968a | |
parent | c53463608e2917792caa61dd3a94deb49a6f9fa1 (diff) | |
download | gnome-session-gnome-3-34.tar.gz |
autostart-app: Place launched applications into a systemd scopegnome-3-34
Try to place launched applications into a systemd scope. This will only
have an effect on systemd managed sessions, where it will e.g. protect
gnome-session from OOM actions to a child resulting in a service
shutdown.
-rw-r--r-- | gnome-session/gsm-autostart-app.c | 14 | ||||
-rw-r--r-- | meson.build | 5 |
2 files changed, 18 insertions, 1 deletions
diff --git a/gnome-session/gsm-autostart-app.c b/gnome-session/gsm-autostart-app.c index 6fd5915a..28b1a88e 100644 --- a/gnome-session/gsm-autostart-app.c +++ b/gnome-session/gsm-autostart-app.c @@ -28,6 +28,11 @@ #include <gio/gio.h> #include <gio/gdesktopappinfo.h> +#ifdef HAVE_GNOME_SYSTEMD +#define GNOME_DESKTOP_USE_UNSTABLE_API +#include <libgnome-desktop/gnome-systemd.h> +#endif + #ifdef HAVE_SYSTEMD #ifdef ENABLE_SYSTEMD_JOURNAL #include <systemd/sd-journal.h> @@ -960,6 +965,15 @@ app_launched (GAppLaunchContext *ctx, g_variant_lookup (platform_data, "startup-notification-id", "s", &sn_id); app->priv->pid = pid; app->priv->startup_id = sn_id; + +#ifdef HAVE_GNOME_SYSTEMD + /* We are not interested in the result. */ + gnome_start_systemd_scope (app->priv->desktop_id, + pid, + NULL, + NULL, + NULL, NULL, NULL); +#endif } #ifdef ENABLE_SYSTEMD_JOURNAL diff --git a/meson.build b/meson.build index fc0fa683..1a62113b 100644 --- a/meson.build +++ b/meson.build @@ -99,11 +99,12 @@ xtrans_dep = dependency('xtrans') ice_dep = dependency('ice') sm_dep = dependency('sm') x11_dep = dependency('x11') +gnome_desktop_dep = dependency('gnome-desktop-3.0', version: '>= 3.34.2') session_deps = [ gio_dep, glib_dep, - dependency('gnome-desktop-3.0', version: '>= 3.18.0'), + gnome_desktop_dep, dependency('json-glib-1.0', version: '>= 0.10') ] @@ -171,6 +172,8 @@ config_h.set('ENABLE_SYSTEMD_SESSION', enable_systemd_session) config_h.set('ENABLE_SYSTEMD_JOURNAL', enable_systemd_journal) config_h.set('HAVE_CONSOLEKIT', enable_consolekit) config_h.set10('USE_SYSTEMD_SESSION', use_systemd_session) +# Added in gnome-desktop 3.34.2/3.35.2 +config_h.set('HAVE_GNOME_SYSTEMD', cc.has_header('libgnome-desktop/gnome-systemd.h', dependencies: gnome_desktop_dep)) configure_file( output: 'config.h', |