シャットダウンコマンドを停止することはできますか?


23

コマンドshutdown -h now(または同等のもの)を入力したと仮定すると、マシンがシャットダウンするのを防ぐために(十分に速い場合)現実的にできることはありますか?


を呼び出すとshutdown -h now、コマンドラインへのアクセスがすぐに失われるhalt -pため、できることはあまりないと思います。
ケン

@Ken:パテで接続されたUbuntuとCentosでは、コマンドラインは数秒間利用可能です。

「今」を意味しないのに、なぜ「今」と言うのですか?
フレッドナーク

回答:


22

実行shutdown -cして、すでに実行中のシャットダウンをキャンセルできます。


1
最初は信じませんでしたが、はい。より具体的にはctrl+c
ケン

2
@Ken:shutdown -cと[Ctrl] + [c]はまったく異なります。shutdown -cは、以前にスケジュールされたシャットダウンをキャンセルするコマンドです(この意味では「今」もスケジュールされていますが、キャンセルによって再起動が妨げられるかどうかは、その場合はちょっとした競合です)。[Ctrl] + [c]を使用すると、端末は、現在接続されているプロセスにSIGINT(割り込み信号)を生成します。これは、実行中のシャットダウンコマンドで動作する可能性がありますが、それはあなたの質問にかなり付随しています。
ジム・デニス

1
@ジムデニス:との違いを知っctrc+cていshutdown -cます。しかし、-now オプションのスケジュールされた兄弟でctrl+cはなく速度を考えると、そのための最速のルートになります。即時のシャットダウンを停止できるとは思っていませんでしたが、それを中断できることにさらに驚いていましたが、明らかにそうすることができますが、それはあなたが述べたようにレースです。
ケン

13

十分に高速な場合init 2(または任意のランレベル)を発行でき、それによりシャットダウンが停止する可能性があります。コマンドの実行が速すぎるため、シャットダウンコマンドの強制終了が失敗します。

以下のスクリプトでこれを試しましたが、シャットダウンを停止するのに十分な速さでもありません

#!/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のmanページから:

スケジュールされたシャットダウンは、シャットダウンプロセスを強制終了することでキャンセルできます(SIGTERMで十分です)。

そのkillall shutdownため、スケジュールされたシャットダウン(例shudown -h +5)がある場合、BSD上で動作します。

shutdown -h now現実のシナリオでは、即時シャットダウン()をキャンセルすることは現実的ではないと思います。


0

メンテナンス目的ですべての端末に再起動またはシャットダウンメッセージを送信し、「サーバーは10分以内にメンテナンス目的で再起動またはシャットダウンする」と仮定します。

この種のコマンドはキャンセルできます。

Ctrl+を押すだけC

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.