This is the mail archive of the cygwin-xfree@cygwin.com mailing list for the Cygwin XFree86 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

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 


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]