在我得到提示之前正在运行什么进程?

Mat*_*hew 4 shell bash prompt signals centos

当我登录到特定服务器时,我看到以下内容:

在 ctrl+c 之前

请注意,我得到了获取Last login: ...信息但没有提示。我打Ctrl+C,只有然后让我的提示,从而证明了我的用户名和密码是否正确,按照下面的屏幕截图。

ctrl+c 后

从今天早上开始,我在办公室的网络服务器上就遇到了这个问题。今天机器中的磁盘已被更换并非巧合,但所发生的一切只是旧磁盘已被克隆,并且系统的所有其他用户都没有遇到此问题。

有谁知道可能会发生什么?

Gil*_*il' 5

您的一个 shell 初始化文件中的某些内容需要很长时间。添加set -x在顶部~/.bash_profile~/.profile(或~/.bash_login)如果你的登录shell是bash,或者~/.zprofile~/.zlogin~/.zshrc,如果它的zsh的。这样,shell 将在执行每个命令之前打印它。set +x之后运行以关闭跟踪。

该命令可能是从系统范围的初始化脚本调用的命令/etc/profile。如果您无法更改该文件但需要查看它的作用,请运行带有跟踪功能的登录 shell,例如bash --login -x.

另一种方法是再次登录并观察使用ps其他工具的情况。在 Linux 上ps x显示你的所有进程(一个普通的ps只显示在当前终端上运行,这在这里没有好处);ps -t pts/42限制在终端上运行的进程/dev/pts/42(您可能需要先运行ps x以确定第二个会话的终端)。