[Gllug] GConfd
Sanatan Rai
sanatan at gmail.com
Wed Sep 21 09:28:38 UTC 2011
On 20 September 2011 23:42, Nix <nix at esperi.org.uk> wrote:
> On 20 Sep 2011, Sanatan Rai uttered the following:
<snipped>
>> Ok, I get that. I kill it after running somethng that needs it, eg geeqie.
>> For example, it is running now. I killed that last copy around the time I sent
>> the initial email, and I haven't started any GTK+/GNOME stuff since then.
>
> I suspect something else needed it and you didn't notice. Even Emacs
> sometimes starts one. I'm running one now and I'm a KDE user... it
> doesn't use much memory and can usually be ignored.
Hmm...not sure if I want to leave it running. I also see other processes
such as gvfsd-metadata and gam_server, but presumably they get
started when I run something using GTK+/GNOME.
To be honest, I do wish these things would just die gracefully if nothing is
using them.
>>> This 'adoption' behaviour is a universally-applicable Unix thing (wired
>>> into the kernel): init(8) adopts all processes whose parents die.
I just tried this: I ran geeqie from the command line, and sure enough gconfd-2
turns up. But again PPID for gconfd is init's, should it not be geeqie's?
> The SIGHUP is not sent by the death of the parent. It is sent in two
> situations:
>
> - to session leaders (processes that have called setsid()) when the
> terminal disconnects, if and only if clocal is not set (see 'stty
> -a'). (clocal is almost certainly not set for you.)
>
> - to all processes in a session leader's foreground process group
> (in shell terms, that pipeline that has not been 'bg'ed) when
> the session leader terminates.
>
> So session leaders don't always get it (e.g. they will never get it if
> they have no controlling terminal), and children of session leaders
> don't always get it either. Its purpose is not to signal parent death:
> it is to signal terminal disconnection.
>
> There is no reliable portable way to get a signal on parent death: you
> have to call getppid() periodically. Since this is obviously appalling,
> there is a nonportable Linux-specific scheme:
> prctl(PR_SET_PDEATHSIG,...). (However, you almost always have to
> implement polling too, for the sake of portability to lesser Unixes.)
Thanks for this, very helpful. I agree it is perfectly legitimate to spawn
something and die. I am just unhappy that apps using GTK+/GNOME or
KDE libraries leave all these services running behind.
[The reason I went off GNOME/KDE (and switched to Enlightenment)
was because they were such hogs. Having all these `helpful processes'
cluttering the process table defeats the purpose. But then it serves me
right for running geeqie etc.]
--Sanatan
--
Sanatan Rai
--
Gllug mailing list - Gllug at gllug.org.uk
http://lists.gllug.org.uk/mailman/listinfo/gllug
More information about the GLLUG
mailing list