This is the mail archive of the
cygwin-xfree@cygwin.com
mailing list for the Cygwin XFree86 project.
Re: some questions relating kde-cygwin and XWin
On Thursday 08 January 2004 16:55, Igor Pechtchanski wrote:
> On Thu, 8 Jan 2004, Ralf Habacker wrote:
> > Hi,
> >
> > 1. for the next kde-cygwin 3.1.4 release I'm going to build a start
> > script, which starts all required applications like ipc-daemon2, XWin and
> > KDE basic apps and kills this processes after a logout, if they are
> > started by the script. I like to build this script without any inferences
> > especially to other XWin instances running on other displays, so I'm
> > required to get the pid of the started XWin instance.
> > I've search in the sources of the Xserver but, have not found any useable
> > feature, so my question is, is there any way known to retrieve the pid of
> > a started XWin instance or is there a possibility to shutdown the server
> > by a xclient app ?
> > If there is no such feature, what about adding a command line option to
> > store the server pid in a file ?
>
> Well, since you can shut down a server via a key combination or an API
> call, it might be a good idea to write a small X app (xshutdown? xkill?)
> that would send a shut down message to the server running on a given
> display... It should be very easy to write -- unless someone gets to it,
> I'll see if I can cook up something in the next couple of weeks.
Unfortunally I'm probably not able to write such an app.
BTW: xkill is already in the x sources available and used for killing
xclients, so xshutdown would be a nice name.
Anyway after search more I've got a solution, which may be interest for others
The bash variable $! returns the pid of the last started process
#!/bin/bash
<snip>
Xwin ..
XWIN_PID=$!
.<start x clients >
kill $XWIN_PID
This may be interesting for example in startxwin.bat for killing the X server
at the end of a session.
Another useful example may be /usr/X11R6/bin/startx in conjunction using
ipc-daemon2. See the example from the kde-cygwin startx script
<snip>
#
# start ipc-daemon2
# and save the pid for killing later
#
ipc-daemon2 &
IPC_PID=$!
#
# start xserver and kde
#
xinit ....
#
# kill ipc-daemon2 if started above
# if ipc-daemon2 was started out of this script, IPC_PID contains the
# pid of the above started ipc-daemon2 instance, which kill itself, so the
# following kill does have any affect like expected.
#
kill $IPC_PID >/dev/null 2>&1
> > 2. The Xserver could be shutdowned by the Tray X icon or by the X in the
> > Xwin windows title. I've read that Xwin now supports specific menu entry
> > (I remember only that this was implemented, not more)
> >
> > I'm looking for a way to run a script for an controlled kde shutdown
> > after triggering a server shutdown but before the xserver shutdown is
> > performed.
> >
> > Unfortunally I haven't found and doc about this in the xfree docs neither
> > I found any usefull thread with an overview of this feature for
> > evaluating a possible implementation, so my question is if anone can give
> > me a pointer to some docs.
>
> Wouldn't X either send a HUP signal or a shutdown event of some sort to
> all X apps running on that display? If not, could it?
Hmmh, I don't know if X does this and I think for kde this wouldn't be enough
but it seems that I have to analyse more kde internals on how doing this.
> > 3. run.exe does not support space in path. I've search for any sources,
> > but haven't found anyone only the binary seems to available in
> > startup-scripts package. So my question is, if this could be fixed ?
> >
> > Ralf
>
> <http://neuro.gatech.edu/users/cwilson/cygutils/run/>
Thanks, have got the sources and fixed the problem. The problem was that bash
surround pathes containing spaces with '"'. May I send the patch to this list
or directly to Charles Wilson ?
> FWIW, you should be able to use the 'setsid' command (in the 'setsid'
> package) or a 'disown' bash builtin to achieve similar effect.
This hint lead me to the bash documentation, where I found the $! trick.
Thanks for this pointer.
Ralf