当我尝试SSH到远程服务器(运行RHEL 4.4.5-6)时,我从bash收到分段错误。提供我的凭据后,SSH客户端会回吐“上次登录:...”信息,然后挂起。
出于好奇,我按下了Ctrl-C并且能够进入bash提示符。但是,这不是我看到的“通常”提示(它通常有我的用户名,服务器主机名等)。
login as: xxxxxxx
xxxxx@xxxx's password:
Last login: Fri Mar 30 14:33:41 2012 from xxx.xx.xx.xxx
-bash-4.1$ echo $0
-bash
-bash-4.1$
我试图从GDB运行/ bin / bash。在中等等待时间之后,我终于得到了一个SIGSEGV错误:
(gdb) run
Starting program: /bin/bash
Program received signal SIGSEGV, Segmentation fault.
0x08067ab5 in yyparse ()
(gdb)
我对系统进行的最后一次(重大)更改是安装GNU屏幕(使用yum安装屏幕)。当我尝试启动时,屏幕似乎也挂了(我假设是因为它尝试运行bash,并且得到了相同的段错误。)
编辑:
我试过运行rpm -V:
-bash-4.1$ rpm -V bash
-bash-4.1$
以下是我的.bash *文件:
.bashrc中:
# .bashrc
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
的.bash_profile:
# .bash_profile
# Get the aliases and functions
if [ -f ~/.bashrc ]; then
. ~/.bashrc
fi
# User specific environment and startup programs
.bash_logout中:
# ~/.bash_logout
.bash_history很长。我删除它,尝试再次登录,并得到相同的结果。
答案 0 :(得分:6)
你是从内部递归地获取你的.bashrc,这在一个简短的测试中确实会导致分段错误。从.bashrc中删除该部分应该可以解决问题。