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 # number of virtual console
DISPLAYNUM=${3:-\:0} DISPLAYNUM=${3:-\:0}
# write pid for init.d/xdm (detect X for this xautologin) # write pid for init.d/xdm (detect X for this xautologin)
( pgrep -f "X ${DISPLAYNUM} vt${TTYNUM}" || echo $BASHPID >/var/run/bash.pid
pgrep -f "X*vt${TTYNUM}" ) >/var/run/xinit.pid
# rerun x session for XUSER MAINLOOP=1
while true 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 do
# perform user profile setting up # perform user profile setting up
X ${DISPLAYNUM} vt${TTYNUM} &
XPID=$!
export DISPLAY=${DISPLAYNUM}
env USER=${XUSER} /usr/share/calculate/xdm/xdm --login || break env USER=${XUSER} /usr/share/calculate/xdm/xdm --login || break
# write pam enviroment for pam_ck_connector # write pam enviroment for pam_ck_connector
cat >/home/${XUSER}/.pam_environment <<EOF cat >/home/${XUSER}/.pam_environment <<EOF
@ -37,11 +52,14 @@ EOF
fi fi
} }
# run script start xsession # 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 # remove user from utmp and wtmp
sessreg -d -l ${DISPLAYNUM} ${XUSER} sessreg -d -l ${DISPLAYNUM} ${XUSER}
# perform logout scripts for user # perform logout scripts for user
env USER=${XUSER} /usr/share/calculate/xdm/xdm --logout env USER=${XUSER} /usr/share/calculate/xdm/xdm --logout
[[ -n $XPID ]] && kill -9 $XPID
done done
exit 0 exit 0

Loading…
Cancel
Save