无法在 9.10 Server VM 中使用 bash,出现僵尸进程和挂起的 tomcat

无法在 9.10 Server VM 中使用 bash,出现僵尸进程和挂起的 tomcat

我在 Windows 7 机器上的 VirtualBox 中托管了一个简单的 9.10 Ubuntu 服务器。

问题概述

  • Tomcat 崩溃
  • 关于僵尸进程
  • 无法进入 shell

该虚拟机已运行良好近一年,另外两台与它几乎相同的虚拟机也运行良好。

最近物理磁盘空间不足,但我觉得这没有关系。

启动时:

 fsck from util-linux-ng 2.16
 /dev/sda1: clean, 142228/2514944 files, 759405/10042625 blocks
 [      3.001120] piix4_xmbus 0000:00:07.0: SMBus base address uninitalized - upgrade BIOS or use force_addr=0xaddr

但我不认为这些与我的问题直接相关。

它继续启动各种守护进程,并到达 Tomcat,然后完全超时。

* Starting Tomcat serverlet engine tomcat6
......... normally, it would throw warning about 
Tomcat not having started correctly, and crashing after 120 seconds,
For some reason, it didn't do it this time.

然后系统会显示登录提示,我可以使用用户名/密码组合成功登录。系统会显示所有标准的“欢迎”信息,之前还显示过有关僵尸进程的消息,但现在在硬重启虚拟机后我无法复制该消息。

然后终端就像死机了一样,我无法输入$ shell任何内容。我的所有键都可以使用,只是没有将任何东西传送到 shell。如果我按几次 ctrl+ca,它会将我注销并返回到身份验证屏幕,但除此之外什么都没有。

如果我等待足够长的时间:

[480.450049] INFO: task cron:1256 blocked for more than 120 seconds.
[480.450798] "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message

好的,记住,我无法进入 shell。所以我不知道该怎么办。

这基本上就是我所看到的: 在此处输入图片描述

您可以看到我因沮丧而猛然按下回车键的位置。

更新

好的,看起来每次我按下 Enter 键时,shell 都会在另一条有关某些东西被阻止的消息后立即出现,所以看起来 bash 只是真的滞后?我不确定。另外,Apache HTTPD 似乎发送了数据,但经过相当长的延迟后才发回响应。

更新2

由于响应延迟,我无法通过 SSH 或以其他方式进入服务器。

在收到几条这样的task cron blocked消息后,我现在可以使用控制台了,但是 SSH 不让我进入。不过 apache 中的延迟似乎已经消失了。

由于能够登录到 shell,我删除了 Tomcat6,目前正尝试进入crontab -e以删除一些任务。

更新3

好的,我删除了辅助 VHD,这样系统上就只有主驱动器了,我还运行了sudo apt-get remove tomcat6。我仍然看到阻塞问题,而且现在* Invalid CATALINA_BASE in /var/lib/tomcat6在启动时也看到了。

答案1

我运行了 TOP 并发现 winbindd 消耗了大量资源,并且尝试对其进行 kill-9 导致该进程不知何故只是跳转到一个新的 ID。

我删除了 winbindd 和 tomcat,问题解决了。

我怀疑 AD/LDAP 在我不知情的情况下发生了某种变化,并影响了 winbindd 与其交互的方式。

答案2

我的第一个猜测是你看到的是虚拟机垃圾,可能是因为虚拟磁盘空间不足。[当我的 / 卷已满并且无法将任何内容写入 /tmp 时,我也看到了类似的奇怪现象。]

如果可以,请重新启动虚拟机并选择“恢复模式”而不是正常启动。当系统提示您执行恢复操作时,请要求进入 root shell 提示符。从那里,您应该能够进行更多诊断并解决问题。

我要寻找的是

  • 可用磁盘空间
  • /、/var、/tmp 是否可写?(它们是否已安装 ro?如果是,是否需要 fsck?)

相关内容