Когда я захожу на определенный сервер, я вижу следующее:
Обратите внимание, что я получаю Last login: ...
информацию, но не получаю приглашение. Я нажимаю Ctrl+C
и толькозатемполучу ли я приглашение, тем самым доказав, что мое имя пользователя и пароль верны, как показано на снимке экрана ниже.
У меня эта проблема с утра на веб-сервере, который у нас в офисе. Неслучайно диски в машине были заменены сегодня, но все, что произошло, это клонирование старого диска, и у всех других пользователей системы этой проблемы нет.
Кто-нибудь знает, что происходит?
решение1
Что-то занимает много времени в одном из файлов инициализации оболочки. Добавьте set -x
в начало ~/.bash_profile
или ~/.profile
(или ~/.bash_login
), если ваша оболочка входа — bash, или ~/.zprofile
и ~/.zlogin
и ~/.zshrc
, если это zsh. Таким образом, оболочка будет выводить каждую команду перед ее выполнением. Запустите set +x
после этого, чтобы отключить трассировку.
Команда может быть вызвана из общесистемного сценария инициализации /etc/profile
. Если вы не можете изменить этот файл, но хотите увидеть, что он делает, запустите оболочку входа с включенной трассировкой, например bash --login -x
.
Другой подход — войти во второй раз и посмотреть, что происходит с ps
и другими инструментами. В Linux ps x
показывает все ваши процессы (простой ps
показывает только запущенные на текущем терминале, что здесь бесполезно); ps -t pts/42
ограничивается процессами, запущенными на терминале /dev/pts/42
(вам, вероятно, нужно будет сначала запустить, ps x
чтобы определить терминал второго сеанса).
решение2
Вместо того чтобы завершать процесс, который вешает вашу оболочку, попробуйте остановить его с помощью Crtl+Z, а затем используйте jobs
команду command, чтобы узнать, что именно произошло.
решение3
Скорее всего, в вашем $HOME/.bashrc, $HOME/.profile запущена команда, которая либо некорректно переведена в фоновый режим, либо ждет ввода от пользователя. Я бы для начала взглянул на эти 2 файла.
Если там ничего не обнаружится, то я бы взглянул на системные эквиваленты этих файлов, /etc/bashrc, /etc/profile и файлы в каталоге /etc/profile.d/*. Возможно, кто-то, системный администратор, добавил что-то в эти системные файлы, которые теперь пытаются запуститься при входе в систему.