web-dev-qa-db-ja.com

Linuxシステムの停止後にコマンドを実行するための最良の方法

問題:サーバーのSSDは、ファームウェアの更新後に電源を入れ直す必要があります(つまり、リセット/ウォームリブートではなく、オフ/オン)。

考え:「ipmitoolchassis powercycle」を使用してサーバーの電源を入れ直すことができます。ただし、これにより、システムの実行中、ファイルシステムのマウント中などに電力が削減されます。

私が基本的に望んでいるのは、システムが停止する可能性があるように、電源を入れ直すことです。しかし、それはサーバーのIPMIボードに実装する必要があると思うので、実際にはオプションではありません。

私の最初のアイデアは、ツールとライブラリを含むRAMディスクを動的に作成し、それを何らかの方法で停止プロセスに統合することでした。 /etc/init.d/haltがあるのを見たので、それが私の出発点になります。シャットダウンプロセスのある時点でカーネルが残りのプロセスを強制終了し始めると思いますが。ですから、それが実行可能な方法であるかどうかさえわかりません。

質問:システムが停止し、すべての通常のファイルシステムがマウント解除された後、ipmitool(またはその他のコマンド)を実行するための最良の方法は何でしょうか?

3
Lukas Loesche

私はそれをシングルユーザーモードにし、OS以外のファイルシステムをマウント解除し、既存のファイルシステムを読み取り専用として再マウントします。次に、ファームウェア更新ツールと「ipmitoolシャーシの電源の入れ直し」を実行します。

かわいくも賢くもありませんが、十分に安全なはずです

7

通常の完全シャットダウンと電源オフを実行します。 10まで数えてから、wake-on-lanまたはIMPIを使用してマシンの電源を入れ直します(Dellの場合はDRAC?)。マシンに対して完全にローカルに保ちたい場合、一部のBIOSでは、ACPIを介してウェイクアップ/電源投入時間を指定できます http://www.mythtv.org/wiki/ACPI_Wakeup を参照してください。 =。例えば。電源投入時間を(現在)+(通常のシャットダウン時間)+(小さな安全マージン)に設定してから、シャットダウンを実行します。

サーバークラスのハードウェアでそれが実際に可能かどうかはわかりません。試してみたらお知らせください。

2
Norky

あなたは番犬を探しています。ソフトウェアによってアクティブ化され、タイマーが更新されずに期限切れになった場合にコンピューターをリセットするタイマー。このためには、マシンをオンにするためのサポートタイマー付きのBIOS、外部IPMIマネージャー、またはIPMIパワーサイクルサポートがマシン上で直接機能するための幸運が必要です。

開始点として、 IPMI util を確認してください。これには、「パワーサイクル」リセットを備えたツールも含まれています。

ウォッチドッグタイマーをアクティブに設定できる場合は、ハードウェア電源オフのタイムアウト機能を使用してタイマーを開始するランレベルを確立します。 ACPIオフなしのシャットダウンランレベルの最後の効果は、タイマー更新プロセスを強制終了することです。

1
Jeff Ferland

起動時(シャットダウンではなく)。

ネットワークブートを使用します。

物理ドライブの電源を入れ直す必要があるため、マシンを再起動してネットワークから起動するように指示します。完了したら、ドライブの電源を入れ直してから、ドライブから再起動します。

0
EightBitTony