是否可以停止关机命令?


23

假设您刚刚输入了命令shutdown -h now(或等效命令),实际上是否可以做任何事情(如果足够快)来防止计算机关闭?


一旦您调用shutdown -h now,我相信您会立即失去命令行访问权限halt -p,这与您无能为力。

@Ken:在通过腻子连接的Ubuntu和Centos上,命令行仍然可用几秒钟。

如果您不是说“现在”,为什么要说“现在”?
Fred Nurk 2011年

Answers:


22

您可以运行shutdown -c以取消已经运行的关机。


1
起初不相信,但是是的。更具体地说ctrl+c
肯(Ken)

2
@Ken:shutdown -c和[Ctrl] + [c]完全不同。shutdown -c是取消先前计划的关机的命令(从这种意义上说,即使“现在”也被安排为---但在这种情况下取​​消操作是否会阻止重新启动有点困难)。[Ctrl] + [c]将使您的终端生成一个SIGINT(中断信号)到当前附加到该进程的任何一个。这可能对正在运行的关闭命令起作用,但这与您的问题有关。
Jim Dennis

1
@Jim丹尼斯:我知道之间的差异ctrc+cshutdown -c。但是考虑到-now 选项的速度而不是其计划的同级,ctrl+c将是达到此目的的最快途径。我不认为您可以停止即将发生的关机,甚至可以中断它而感到惊讶,但显然您可以,但是正如您所说,这是一场比赛。

13

如果速度足够快,则可以发出一个init 2(或所需的任何运行级别),这很可能会停止关机。任何涉及终止shutdown命令的操作都将失败,因为该命令运行太快

我用下面的脚本尝试了这个,甚至还不够快,无法停止关闭

#!/bin/bash
shutdown -h now
shutdown -c "Aborting Shutdown"

Broadcast message from iain@iain-ubuntu
        (/dev/pts/0) at 16:50 ...

The system is going down for halt NOW!
shutdown: Cannot find pid of running shutdown

互动式

shutdown -h now
init 2 

系统保持正常运行。


1

在FreeBSD手册页中:

可以通过取消关闭进程来取消计划的关闭(SIGTERM应该足够了)。

因此killall shutdown,当计划关闭时,可以在BSD上运行(例如shudown -h +5)。

我认为shutdown -h now在现实生活中取消即时关机()是不可行的。


0

假设您向所有终端发送了重新引导或关闭消息以进行维护,即“服务器将在10分钟内重新引导或关闭以进行维护”

这种命令可以取消。

只需按Ctrl+C

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.