web-dev-qa-db-ja.com

UNIXでhaltコマンドを実行した後、「プラグを抜く」のは安全ですか?

これはおそらく簡単な答えのあるばかげた質問ですが、何時間もグーグルで検索した後、私はそれに光を当てることができないようです。私が学んだことから、UNIX(BSDなど)およびUnixライクなシステム(Linuxなど)でのhaltコマンドは、syncを呼び出した後にCPUを停止します。最近のほとんどのLinuxディストリビューションではhaltshutdownを呼び出す別の方法であることを知っていますが、ラップトップにFreeBSDとArch Linuxをインストールしましたが、どちらのシステムもhaltが実行することになっています(CPUを停止しますが、ACPIはシャットダウンしません)。私の質問は、電話した後です

# sync;sync;sync
# halt

「プラグを抜く」か、(壁の電源ソケットから)電源を切るのは安全ですか? haltを呼び出した後、システムは本当に「オフ」状態ですか?

ボーナス: Arch LinuxまたはFreeBSDのいずれかでhaltを呼び出した後、コンピュータが応答しないように「停止」しているように見え、何も機能しませんが、ファンの動作は聞こえます。電源を切るとファンが止まります。したがって、問題はありません。おそらくhaltがハードウェアを停止せずall、CPUを停止するだけなのかどうか疑問に思っています。 ?

5
Ankush

syncが完了している限り、おそらくプラグを抜いても大丈夫です!

古き良き時代には、ヘッドが駐車されていないときにプラグを抜くとディスクプラッターが損傷する可能性がありましたが、最近ではハードウェアに損傷を与えることはほとんどありません(おそらく...安全にしましょう。 )。

それはソフトウェアの損傷を残すだけです。大きなディスクジョブの途中でプラグインを抜くことは明らかに悪い計画ですが、マシンがアイドル状態の場合は、開いているドキュメントを保存し、syncを実行して書き込みバッファをフラッシュしました。そうすれば、突然の電源オフイベントがそれほど害になることはないでしょう。いずれにせよ、haltの後、ソフトウェアはそれ以上何もしなくなります。そのため、行われる予定だった損害はすでに発生しています。

もちろん、これはすべて論点です。haltshutdown -H nowの同義語であり、実行中のすべてのプロセスとサービスを適切かつ適切にシャットダウンし、すべてのデータを同期し、すべてのファイルをアンマウントします。 -システム。

他のハードウェアデバイスに関しては、それらはまだオンで、アイドリングしています。画面には、CPUが停止する前に画面に表示されていたものがすべて表示され続けます。ファンは、ソフトウェア制御なしで何でもし続けます。ディスクは、構成可能な電力プロファイルで指示されていることをすべて実行します。

実際、マシンによっては、CPUがオフになっていない場合もあります--it might無限ループの周りを回転し、誰かがリセットを押すのを待っているだけです。

5
ams

私はそれに反対することをお勧めします。一部の/最新のOSはhaltshutdown -h nowにエイリアスしますが、これに依存することはお勧めできません。

本当の形では、haltはすべてのCPUアクティビティの非常に突然の停止であり、実際には、システムが適切に実行された後、rc.dランレベルのinit 0によって呼び出されるように設計されています。シャットダウンシーケンス...データ破損のリスクのほとんどを処理するディスクを同期しましたが、適切なシャットダウンにはさらに多くのクリーンアップ(FSアンマウント、ロックファイルなど)が含まれます。

また、sync呼び出しとhalt呼び出しの間で、プロセスが重要な処理を開始するリスクもあります。ただし、それらをどれだけ速くチェーンしても(CPUスケジューラーの動作を何らかの方法で保証できない場合) ...できません)。

ベストプラクティスは、shutdown -h nowを呼び出すことです。これにより、すべてのプロセスとデーモンが正常に停止し、ファイルシステムがマウント解除され、最終的にシステムが同じ停止状態になります。その後、安全に電源を切ることができます。この方法には、(最新のACPIサポートシステムで)ACPI電源オフコマンドを呼び出すという利点もあります。これにより、(true)haltとは異なり、PSUは電力をカットします(これにより、ファンやその他すべてが停止します)。 ACPIコマンドを発行すると、すべての電源がオンのままでCPUがアイドル状態になります。

4
BowlesCR

はい、それがhaltコマンドの目的です。これにより、すべてのアクティビティが停止します。

これらのコマンドは、電源オフの準備としてシステムをただちにシャットダウンします。

  • 須藤シャットダウン-h今
  • Sudoパワーオフ
  • 須藤停止
  • Sudo init 0

ハードドライブインジケータライトに注意してください

アクティビティがある場合、システムはまだ実行中です。これらのコマンドの直後に停止します。

ちらつきが止まったら、シャットダウンが終了したことがわかります。

0
SDsolar