[mdk-re] Как запустить два Х двум разным пользователям одновременно
Michael Shigorin
=?iso-8859-1?q?mike_=CE=C1_lic145=2Ekiev=2Eua?=
Чт Дек 13 11:36:19 MSK 2001
On Thu, Dec 13, 2001 at 10:14:09AM +0300, John wrote:
> Как запустить два Х двум разным пользователям одновременно? Что писать?
startx -- :N
где N=0,1,... (и 0 по умолчанию)
Или см. аттач -- мой startx сам разбирается ;)
--
---- WBR, Michael Shigorin <mike на altlinux.ru>
------ http://visa.chem.univ.kiev.ua/~mike/
----------- следующая часть -----------
#!/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