mtr/mtr-gtk-pkexec-wrapper.sh
Michal Sekletar 12ffba0a7f Make shell parent of pkexec
In case when mtr-gtk is started from gnome-shell we need to make sure
that parent process of pkexec is not systemd. This is because pkexec
exits with error if it detects that its parent is PID 1 [1].

Execing pkexec was fine before F22, because previously gnome-shell was
reaping processes it spawned. Since F22 gnome-shell doesn't do that and
it calls g_spawn_async w/o G_SPAWN_DO_NOT_REAP_CHILD flag in which case
glib really doesn't bother with reaping child processes properly and
instead it does double fork(). Intermediate child process goes away and
grand-child is then reparented to PID 1 that will reap it. [2]

[1] https://cgit.freedesktop.org/polkit/commit/src/programs/pkexec.c?id=3b12cfac29dddd27f1f166a7574d8374cc1dccf2
[2] https://git.gnome.org/browse/gnome-shell/commit/?id=01c6392c1373cf23786a0dad1b670a511107349c
2017-02-28 16:43:15 +01:00

4 lines
45 B
Bash

#!/bin/sh
/usr/bin/pkexec /usr/bin/xmtr.bin