當我登入特定伺服器時,我看到以下內容:
請注意,我收到Last login: ...
訊息但沒有提示。我擊中了Ctrl+C
並且只擊中了然後我是否收到提示,從而證明我的用戶名和密碼是正確的,如下面的螢幕截圖所示。
從今天早上開始,我在辦公室的網路伺服器上就一直遇到這個問題。今天機器中的磁碟已被更換並非巧合,但所發生的只是舊磁碟已被克隆,並且系統的所有其他用戶都沒有遇到此問題。
有人知道會發生什麼事?
答案1
您的 shell 初始化檔案之一中的某些內容花費了很長時間。如果您的登入 shell 是 bash,則在or (或)set -x
的頂部添加;如果是 zsh,則在和的頂部添加。這樣 shell 將在執行每個命令之前列印它。之後運行以關閉跟踪。~/.bash_profile
~/.profile
~/.bash_login
~/.zprofile
~/.zlogin
~/.zshrc
set +x
該命令可能是從系統範圍的初始化腳本呼叫的命令/etc/profile
。如果您無法變更該檔案但需要查看它的作用,請執行具有追蹤功能的登入 shell,例如bash --login -x
。
ps
另一種方法是再次登入並觀察其他工具的情況。在 Linux 上ps x
顯示所有進程(純文字ps
僅顯示在當前終端機上運行,這裡沒有什麼好處);ps -t pts/42
限制在終端機上執行的進程/dev/pts/42
(您可能需要ps x
先執行以確定第二個會話的終端)。
答案2
相反,要終止掛起 shell 的進程,請嘗試使用 Crtl+Z 停止它,然後使用jobs
命令查看它是什麼。
答案3
您的 $HOME/.bashrc、$HOME/.profile 中很可能正在運行一個命令,該命令要么沒有正確後台運行,要么正在等待用戶的輸入。我會先看一下這兩份文件。
如果那裡沒有任何結果,那麼我會查看這些檔案的系統等效項,/etc/bashrc、/etc/profile 以及目錄 /etc/profile.d/* 中的檔案。也許有人(系統管理員)為那些系統級文件添加了一些內容,這些文件現在在您登入時嘗試運行。