diff --git a/bin/logout b/bin/logout index 543833b..c86ff6c 100644 --- a/bin/logout +++ b/bin/logout @@ -45,10 +45,15 @@ then disp=$(echo $user_disp | cut -d: -f2) # завершаем сессию пользователя /usr/sbin/cl-core --method desktop_logout $user &>/dev/null - # удаляем запить о пользователе - /usr/bin/sessreg -d -l :$disp $user &>/dev/null - # выполняем принудительный выход из сеанса - USER="$user" /usr/share/calculate/xdm/xdm --logout &>/dev/null & + sleep 1 + # если корректное завершение не удалось + if who | grep -q -P "$user.*:$disp" + then + # удаляем запить о пользователе + /usr/bin/sessreg -d -l :$disp $user &>/dev/null + # выполняем принудительный выход из сеанса + USER="$user" /usr/share/calculate/xdm/xdm --logout &>/dev/null & + fi done fi if [[ -n "${DOMAIN_USERS[@]}" ]]