|
|
|
@ -38,6 +38,7 @@ killXserver()
|
|
|
|
|
[[ -d /proc/$KILLXPID ]] || break
|
|
|
|
|
sleep 1
|
|
|
|
|
done
|
|
|
|
|
WAITRELOGIN=
|
|
|
|
|
# kill X by -KILL
|
|
|
|
|
[[ -d /proc/$KILLXPID ]] && kill -KILL $KILLXPID &>/dev/null
|
|
|
|
|
}
|
|
|
|
@ -50,6 +51,7 @@ HOMEDIR=`getent passwd $XUSER | awk -F: '{ print( $6 ); }'`
|
|
|
|
|
export DISPLAY=${DISPLAYNUM}
|
|
|
|
|
export XAUTHORITY=$HOMEDIR/.Xauthority
|
|
|
|
|
|
|
|
|
|
WAITRELOGIN=7
|
|
|
|
|
while id $XUSER &>/dev/null &&
|
|
|
|
|
[[ -n $MAINLOOP ]] &&
|
|
|
|
|
[[ "$(rc-status -r)" != "shutdown" ]]
|
|
|
|
@ -99,8 +101,11 @@ EOF
|
|
|
|
|
# remove user from utmp and wtmp
|
|
|
|
|
sessreg -d -l ${DISPLAYNUM} ${XUSER}
|
|
|
|
|
# perform logout scripts for user
|
|
|
|
|
if [[ -n $WAITRELOGIN ]]
|
|
|
|
|
then
|
|
|
|
|
sleep $WAITRELOGIN
|
|
|
|
|
fi
|
|
|
|
|
env USER=${XUSER} /usr/share/calculate/xdm/xdm --logout
|
|
|
|
|
sleep 7
|
|
|
|
|
[[ -n $XPID ]] && kill $XPID
|
|
|
|
|
wait $XPID
|
|
|
|
|
done
|
|
|
|
|