shell: Do not create a systemd scope when using D-Bus app launching

Applications launched using D-Bus activation will have a returned PID of
0, which systemd interprets as moving the requesting process to a new
scope, causing GNOME Shell to be moved to another scope. Fix this by not
creating a systemd scope when PID is 0.

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/2305>
This commit is contained in:
msizanoen1 2022-05-26 13:15:06 +07:00 committed by Marge Bot
parent ea60bf4bc7
commit afcd58e3ba

View File

@ -1399,6 +1399,11 @@ shell_global_app_launched_cb (GAppLaunchContext *context,
if (!g_variant_lookup (platform_data, "pid", "i", &pid)) if (!g_variant_lookup (platform_data, "pid", "i", &pid))
return; return;
/* If pid == 0 the application was launched through D-Bus
* activation, therefore it's already in its own unit */
if (pid == 0)
return;
app_name = g_app_info_get_id (info); app_name = g_app_info_get_id (info);
if (app_name == NULL) if (app_name == NULL)
app_name = g_app_info_get_executable (info); app_name = g_app_info_get_executable (info);