From 57b5908b688dd6e52b4c475b593f9e2b8537fff4 Mon Sep 17 00:00:00 2001 From: Mike Hiretsky Date: Fri, 2 Sep 2011 10:16:06 +0400 Subject: [PATCH] Rewrite xautologin. Now xautologin restart X session and must be run by bash. --- data/xautologin | 28 +++++++++++++++++++++++----- 1 file changed, 23 insertions(+), 5 deletions(-) diff --git a/data/xautologin b/data/xautologin index b1bedef..4380dd7 100644 --- a/data/xautologin +++ b/data/xautologin @@ -7,13 +7,28 @@ TTYNUM=${2:-7} # number of virtual console DISPLAYNUM=${3:-\:0} # write pid for init.d/xdm (detect X for this xautologin) -( pgrep -f "X ${DISPLAYNUM} vt${TTYNUM}" || - pgrep -f "X*vt${TTYNUM}" ) >/var/run/xinit.pid +echo $BASHPID >/var/run/bash.pid -# rerun x session for XUSER -while true +MAINLOOP=1 +killXserver() +{ + KILLXPID=$XPID + XPID= + MAINLOOP= + kill -9 $KILLXPID &>/dev/null +} + +trap killXserver SIGTERM SIGINT SIGQUIT + +# rerun x session for XUSER while not shutdown and bash not receivce TERM +while id $XUSER &>/dev/null && + [[ -n $MAINLOOP ]] && + [[ "$(rc-status -r)" != "shutdown" ]] do # perform user profile setting up + X ${DISPLAYNUM} vt${TTYNUM} & + XPID=$! + export DISPLAY=${DISPLAYNUM} env USER=${XUSER} /usr/share/calculate/xdm/xdm --login || break # write pam enviroment for pam_ck_connector cat >/home/${XUSER}/.pam_environment <