我有一台正在运行测试的计算机,有时在测试过程中它会冻结。我当时想编写一个 shell 脚本来 ping 测试机器,如果它挂了就重新启动它。
我通过 ssh 进入测试机器并能够重新启动它,但在挂起期间我运气不佳!如何在挂起期间通过 ssh 重新启动它?
谢谢
规格:mac osx
答案1
在测试机器附近设置另一台计算机。您需要将其放置在 CD-ROM 驱动器与测试机器呈 45 度角的位置。将其放置在当 CD-ROM 弹出时可以按下电源按钮的位置。
现在您可以 ssh 进入新机器,运行命令eject <device>
并实现您的目标。
答案2
如果它真的挂了,您很可能无法启动新进程,而您需要通过 ssh 或重新启动它才能启动新进程。
在这种情况下真正需要远程重启的服务器通常具有额外的硬件,例如另一个设备(我认为其中一个称为 RSA 卡),它允许您登录并触发重启,或者一个看门狗计时器,它会定期查找某些事情发生,如果没有发生,它就会重新启动。
另一种可能性是将您的服务器作为虚拟机在 VMWare、Xen 或 VirtualBox 等虚拟机管理程序下运行,然后您可以登录到根机器(在 Xen 中称为 dom0)并重新启动挂起的虚拟机。
答案3
你说的挂起是什么意思?如果你指的是 SSH 服务挂起,那么你就无法重新启动。如果你说的挂起是指 CPU 受到重击,那么你可能需要等待一段时间。如果你说的挂起是指某个进程挂起,导致系统无法关闭,那么你可能必须先终止该进程,然后再发出关机命令。此外,你的安全系统设置可能阻止你通过 ssh 发出关机命令。
答案4
正如前面的回答所说,如果真的挂了(内核崩溃等)——重启时选项就非常有限了。你正在寻找的功能是 Lights-out 管理,又称为带外管理。从中了解更多有关 if 的信息维基百科
哦,是的,这个问题在 serverfault 上更常见