I use X, XDM and Fluxbox. Slackware 10, kernel 2.6.8.1, nothing bizarre.
When I look at a process tree, I expect see all my X apps as children of .xsession, so that I could kill Fluxbox and run TWM if I wanted, or if I kill .xsession, they will all terminate. This is not what happens, though.
I see some of my apps (thunderbird, gaim, xterm, firefox) as children of Fluxbox. This isn't really a problem since I'm never out of Fluxbox, but it's not ideal.
The real issue is that many apps (artsd, juk, ksysguard, gvim, everything docked in the slit i.e. wmweather) seem to somehow "escape" X altogether and are children of init. This *is* a problem, because it means that if I end my fluxbox session without closing these, they will not be shut down properly if at all. For instance, if I logout and log back in, juk will still be running somewhere in the ether and won't open a new instance until I manually kill the old one from a terminal. Also, artsd sometimes terminates and sometimes doesn't, so if I logout and log back on, the sound sometimes doesn't work. ARGH!
I'm not sure why some apps behave differently from others. The only thing I can think of that the init-children have in common is that they are apps that are specially made for window managers that I am not using (KDE, Gnome, WindowMaker), while the Fluxbox-children are "generic" X programs like xterm and gaim.
I want EVERYTHING I run under fluxbox be a child of .xsession, so that these processes be killed correctly when I log out. Right now, NOTHING I run is a child of .xsession, with the exception of Fluxbox and xscreensaver, which are actually called by .xsession.
How do I fix this? Thanks!
If it helps:
Code:
~$ cat .xsession
#!/bin/bash
# start xscreensaver
xscreensaver -no-splash &
# run dockapps
~/.fluxbox/dockapps.sh &
# start window manager and get PID
fluxbox &
WMPID=$!
# set up background and get PID
`cat ~/.rootcommand` &
ROOTPID=$!
# wait for WM
wait $WMPID
# kill root command
kill $ROOTPID
~$