Перезагрузка экрана входа в Ubuntu

1218
AJ.

Я пытаюсь войти в свой рабочий стол Ubuntu после обновления нескольких пакетов и перезагрузки. Я знаю, что аутентифицируюсь успешно, но, похоже, происходит то, что после того, как я ввожу свое имя пользователя и пароль, экран временно переключается на черный, а затем снова загружается страница входа.

Я не уверен, где искать ошибки, связанные с этим. Мы ценим любые предложения.


ОБНОВЛЕНИЕ: Если я выберу failsafe GNOMEиз списка сессий, я могу войти в систему в порядке. Есть идеи?


ОБНОВЛЕНИЕ 2: Вот вывод ~/.xsession-errors:

/etc/gdm/Xsession: Beginning session setup... /etc/profile.d/p4c.sh: 8: Syntax error: "(" unexpected 

p4c.shэто скрипт, который я скопировал из моей предыдущей системы Ubuntu - где он работал нормально. Вот содержимое p4c.sh:

#!/bin/bash  # p4c() function setup params p4_HOST=`hostname | awk -F . ''`  # function for setting the P4CLIENT variable based on the first non-option # argument provided function p4client() { HELP_MODE='' VERBOSE_MODE='' DESC_MODE='' SHORT_MODE='' while getopts ":hdsv" option do case $option in h) echo "p4c provides information about perforce clients." echo "Recognized arguments:" echo " -h help (this message)" echo " -d descriptions (prints client descriptions - useful, but slightly slower)" echo " -v verbose (print unreasonable amounts of debugging info" echo # About to exit - reset OPTIND or we'll be in trouble later. OPTIND=1 # Abort return ;; v) VERBOSE_MODE='verbose';; d) DESC_MODE='descriptions';; s) SHORT_MODE='short';; *) echo "Unknown option '$OPTARG'! Specify -h for help..." # About to exit - reset OPTIND or we'll be in trouble later. OPTIND=1 # Abort return ;; esac done  # Set argument pointer to first non-option argument shift $(($OPTIND - 1))  # Done with OPTIND - better reset it before something bad happens... OPTIND=1  PROJECT=$1; if [ $VERBOSE_MODE ] then echo "PROJECT: $PROJECT" fi  # Need to check/set p4_USER every time to allow changes between invocations if [ -z "$p4c_USER" ] then p4_USER=`echo $P4USER` if [ -z "$p4_USER" ] then p4_USER=`id -nu` fi else p4_USER=$p4c_USER fi if [ $VERBOSE_MODE ] then echo "p4_USER: $p4_USER" fi   if [ -n "$PROJECT" ] then # provided a non empty string project name p4_CLIENT=$p4_HOST-$p4_USER-$PROJECT if [ $VERBOSE_MODE ] then echo "p4_CLIENT: $p4_CLIENT" fi  # check client to see if it exists p4_GREP_RESULT=`p4 clients | grep "$p4_CLIENT"` if [ -z "$p4_GREP_RESULT" ] then echo "NOTE: P4 client \"$p4_CLIENT\" does not exist on server." echo "Setting P4CLIENT anyway so that client \"$p4_CLIENT\" can be created." echo fi  export P4CLIENT=$p4_CLIENT; else # check for client matches p4_GREP_RESULT=`p4 clients | egrep "($p4_HOST-$p4_USER-|$p4_USER-$p4_HOST-)" | awk ''` echo "Known workspaces for user $p4_USER, host $p4_HOST:" if [ -z 
2
Вы можете попробовать нажать Ctrl + Alt + F1, чтобы переключиться на терминал, затем войти в систему и запустить dmesg. Если это не показывает каких-либо интересных сообщений журнала, вы можете попытать счастья с некоторыми из файлов / var / log ... marcusw 14 лет назад 0
@marcusw - спасибо, я нашел несколько интересных записей в журнале. см. мое редактирование. есть идеи? AJ. 14 лет назад 0

1 ответ на вопрос

1
Benjamin Bannier

Вы должны удалить functionключевое слово или скобки ()в этой строке. Это реализовано немного противоречиво в разных bashверсиях - вероятно, ваше обновление представило какую-то несовместимую версию bash.

Для меня

nameofsomefunction() { ... } 

работает большую часть времени.

Похожие вопросы