Rewrite xautologin.

Now xautologin restart X session and must be run by bash.
master
Mike Hiretsky 13 years ago
parent e4781e9bce
commit 57b5908b68

@ -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 <<EOF
@ -37,11 +52,14 @@ EOF
fi
}
# run script start xsession
source /usr/bin/startx'
source /usr/bin/startx' &
# wait for right work trap SIGTERM
wait $!
# remove user from utmp and wtmp
sessreg -d -l ${DISPLAYNUM} ${XUSER}
# perform logout scripts for user
env USER=${XUSER} /usr/share/calculate/xdm/xdm --logout
[[ -n $XPID ]] && kill -9 $XPID
done
exit 0

Loading…
Cancel
Save