先日、ウチのブログでオムロンのUPSを使ったMacのシステムで、停電が発生して正常にMac OS Xがシャットダウンした後、商用電源が復旧した時にそのMacが自動的に起動しない事を記事にしました。
OMRONのPowerAct Proというアプリの仕様で、Master Agentで管理されているMacでは自動起動出来ず、そこにぶら下がるSlave Agentで管理しているMacは自動起動が出来る事が原因です。
その後、Master AgentがインストールされたMacMini ServerへSlave Agentもインストールしたり、WOLを使って別のMacから起動出来ないかなど、色々試しましたが良い方法がなかなか見つからずにいました。
その中で唯一期待出来そうなソリューションが見つかったので紹介してみます。
それは、shutdownコマンド または haltコマンド の 「-u」オプションです。
まずMac OS Xのシステム環境設定内の省エネルギーパネルで「停電後に自動的に起動」にチェックを入れておきます。ただし、このオプションはMac OS Xが正常にシャットダウンされた時には動作しません。正常なシャットダウンとは、以下のいずれかでMac OS Xが終了した場合です。
- GUIで「システム終了…」を操作した場合
- ターミナルで shutdown -h コマンド (例: shutdown -h now など)
- ターミナルで halt コマンド
これらの方法でMac OS Xを終了した後にACアダプターを抜いて、差し直しても、Macは自動では起動せず、電源ボタンを押す必要があります。
しかし、ターミナルで次のコマンドを用いてMac OS Xを終了した場合は、正常にOSをシャットダウンさせつつ、Macはあたかも電源に異常が発生した状態で終了する為、想定している電源復旧時に自動的に起動します。
- ターミナルで shutdown -h -u コマンド (例: shutdown -h -u now など)
- ターミナルで halt -u コマンド
実際にMacMini ServerやMacBook Proを用いて実験を行い、これらのコマンドでシャットダウンした後にアダプターを抜き差しすると自動的にシステムが起動する事が確認出来ました。
次はOMRONのPowerAct Proがどの様にシステムを終了しているかですが、これはPowerAct Proアプリケーションのソースファイルが無いためよく分かりません。その為、次の様なシェルスクリプトを作成して外部コマンドとして実行してみることにしました。
#!/bin/sh
sudo killall halt
sudo killall shutdown
sudo halt -u
2行目と3行目には、PowerAct ProがUPSの運転状態がバッテリーに切り替わった瞬間にhaltコマンドやshutdownコマンドを時間指定で実行している事を懸念して、それらのプロセスを終了する為に入れています。その上で、 -u オプションを用いてhaltコマンドを実行してシステムを終了しています。
このシェルスクリプトをPowerAct Proの外部コマンドラインとして指定してみました。これらの作業が終了したのがつい先ほどだったため、擬似的な停電状況を作り出しての検証は出来ていませんが、明日も東京電力による計画停電が予定されている様なので、その際にこの設定がうまく動作するかどうか明確になると思います。
また結果をこのブログで紹介したいと思います。
参考リンク:
Mac: オムロンのUPS導入で計画停電でも安心だが、復帰しない….。 – Logon Blog
シャットダウン時に
sudo pmset schedule poweron “03/04/17 20:00:00”
などと適当な時間のpoeronを仕込んでおけば指定時間以降の電源回復のタイミングで起動するはずです。