Linux系统暂停后执行命令的最佳方式

问题:固件更新后,我们服务器中的固态硬盘需要重新启动(即closures/打开,而不是重新启动/热启动)。

想法:使用'ipmitool机箱电源循环'我可以循环服务器的电源。 然而,这将在系统仍在运行时断电,文件系统被挂载等等。

我基本上想要的是一个延迟的电力循环,所以系统有机会停下来。 但我想这将不得不在服务器的IPMI板上实现,所以这不是一个真正的select。

我最初的想法是dynamic创build一个包含工具和libs的ramdisk,并以某种方式将其集成到暂停过程中。 我看到有一个/etc/init.d/halt,所以这将是我的出发点。 尽pipe我相信内核在关机过程中的某个时刻开始closures剩下的进程。 所以我甚至不确定这是否可行。

问题:在系统暂停并卸载所有常规文件系统之后,执行ipmitool(或任何其他命令)的最佳方式是什么?

我会把它放到单用户模式,卸载任何非操作系统文件系统,并重新安装任何现有的只读。 然后运行你的固件更新工具和'ipmitool机箱电源循环'。

这不是漂亮或聪明,但应该足够安全

做一个正常的完全关机和关机; 数到10,然后通过唤醒LAN或IMPI重新启动机器到BMC(在Dell的情况下为DRAC)。 如果您想将其完全保留在机器本地,则有些BIOS会让您通过ACPI指定唤醒/开机时间 – 请参阅http://www.mythtv.org/wiki/ACPI_Wakeup 。 例如设置上电时间到(现在)+(正常关机时间)+(一个小的安全余量),然后运行关机。

我不知道,如果这实际上是可能的服务器级硬件 – 请让我们知道,如果你尝试。

你在找一个看门狗 计时器由软件激活,如果计时器到期而未刷新,则重置计算机。 为此,您需要带有支持定时器的BIOS打开机器,使用外部IPMIpipe理器,或直接在机器上运行IPMI电源周期支持的好运气。

作为一个起点,检查一下IPMI util还包括一个“电源周期”重置的工具。

如果可以将看门狗定时器设置为活动状态,则build立一个启动定时器的运行级别,具有硬件断电超时function。 shutdown-without-ACPI-off运行级别的最后一个效果应该是终止定时器更新过程。

在启动(而不是关机)。

使用networking启动。

您需要重新启动物理驱动器,因此我build议您重新启动计算机,告诉它从networking启动,完成之后,重新启动驱动器,然后从驱动器重新启动。