[mdk-re] Re: [mdk-re] Как запустить два Х двумразным пользователям одновременно
Andriy Dobrovol's'kii
=?iso-8859-1?q?dobr_=CE=C1_iop=2Ekiev=2Eua?=
Чт Дек 13 12:09:04 MSK 2001
Можно ли этот вариант сделать основным в дистрибутиве и вообще?
Всего,
Андрей
Michael Shigorin wrote:
> On Thu, Dec 13, 2001 at 10:14:09AM +0300, John wrote:
>
>>Как запустить два Х двум разным пользователям одновременно? Что писать?
>>
> startx -- :N
> где N=0,1,... (и 0 по умолчанию)
>
> Или см. аттач -- мой startx сам разбирается ;)
>
>
>
> ------------------------------------------------------------------------
>
> #!/bin/sh
> #
> # (c) 1999 Red Hat Software, Inc.
> # patched by Michael Shigorin <mike на altlinux.ru>
> # to open new displays automagically
>
> bindir=/usr/X11R6/bin
>
> userclientrc=$HOME/.xinitrc
> userserverrc=$HOME/.xserverrc
> sysclientrc=/etc/X11/xinit/xinitrc
> sysserverrc=/etc/X11/xinit/xserverrc
> clientargs=""
> serverargs=" -quiet "
>
> TMPDIR=${TMPDIR:-/tmp}
>
> if [ -f $userclientrc ]; then
> clientargs=$userclientrc
> else if [ -f $sysclientrc ]; then
> clientargs=$sysclientrc
> fi
> fi
>
> if [ -f $userserverrc ]; then
> serverargs=$userserverrc
> else if [ -f $sysserverrc ]; then
> serverargs=$sysserverrc
> fi
> fi
>
> # select next free display...
> if [ -n "`ls /tmp/.X*-lock 2>/dev/null`" ]; then
> display=:$[1+0$(ls /tmp/.X*-lock | tail -1 | sed -n 's/.*X\([[:digit:]]\+\)-lock$/\1/p')]
> else
> display=:0
> fi
>
> whoseargs="client"
> while [ "x$1" != "x" ]; do
> case "$1" in
> /''*|\.*) if [ "$whoseargs" = "client" ]; then
> if [ "x$clientargs" = x ]; then
> clientargs="$1"
> else
> clientargs="$clientargs $1"
> fi
> else
> if [ "x$serverargs" = x ]; then
> serverargs="$1"
> else
> serverargs="$serverargs $1"
> fi
> fi ;;
> --) whoseargs="server" ;;
> *) if [ "$whoseargs" = "client" ]; then
> clientargs="$clientargs $1"
> else
> case "$1" in
> :[0-9]) display="$1"
> ;;
> *) serverargs="$serverargs $1"
> ;;
> esac
> fi ;;
> esac
> shift
> done
>
> # set up default Xauth info for this machine
> mcookie=`mcookie`
> serverargs="$serverargs -auth $HOME/.Xauthority"
> xauth add $display . $mcookie
> xauth add `hostname -f`$display . $mcookie
>
> # remember which VC will be occupied by X to deallocvt it later
> XINITLOG="$TMPDIR"/.startx-$HOSTNAME$display
> while [ -e "$XINITLOG" ]; do
> XINITLOG="$TMPDIR"/.startx-$HOSTNAME$display-$RANDOM
> done
>
> # here's the race :(
>
> # protect logfile
>
>>"$XINITLOG"
>>
> chmod 600 "$XINITLOG"
>
> xinit $clientargs -- $display $serverargs 2>&1 | tee -a "$XINITLOG"
>
> # clean up
> deallocvt $(sed -n -e 's/^(using VT number \([[:digit:]]\+\))/\1/p' "$XINITLOG") 2>/dev/null
> rm -f "$XINITLOG"
>
Подробная информация о списке рассылки community