2011年3月14日から始まった計画停電で、2010年末に導入したOMRONのBY50FWが活躍している事を何度か記事にしました。商用電源が停止になった時点で安全にMacをシャットダウンし、Macへの電源供給を停止する事が出来ています。
しかし「商用電源が復旧した時点でPowerAct Pro Master SlaveがインストールされたメインのMacMini Serverが自動的に起動しない」という状況に陥っていました。しかし、昨日試した「halt -u」コマンドを用いる事で商用電源復旧時、自動的に起動させる事に成功しました。結論としては、PowerAct Proがシステムがシャットダウンしようとしているのを割り込み、スクリプトで-uオプション付きのhaltコマンドでシステムを終了する事に成功しています。
忘却録をかねて、その方法を紹介してみたいと思います。なお、実現にはある程度のUNIXやviの使い方などの理解が必要です。
[シェルスクリプトの準備]
以下の様なスクリプトを作り、chmod 755 しておきます。
#!/bin/sh
sudo killall halt
sudo killall shutdown
sudo halt -u
[sudoersの編集]
OMRONのUPSに付属しているPowerAct Pro Master Slaveが、どのアカウントで外部コマンドを実行するかよく分かっていません。しかし上述のシェルスクリプト内でsudoを使用している為、実行されるアカウントによってはスーパーユーザーのパスワード入力を求められて停止してしまい、正常に実行されない事が考えられます。
なので、念の為PowerAct Proの設定やシェルスクリプトを作ったアカウントを/etc/sudoersへ登録しておき、superuserパスワードを求められない様に考慮しておきました。/etc/sudoersの編集にはvisudoコマンドを用いました。おそらく、デフォルトで用意されているsudoersの以下の行を有効にするだけでも良いのではないかと思います。
%wheel ALL=(ALL) NOPASSWD: ALL
[PowerAct Pro Master Agentの設定]
PowerAct Proの「外部コマンドライン」へ最初に作ったシェルスクリプトをフルパスで指定します。
[Dynamic DNSアップデートの間隔]
IPアドレスが固定ではない環境でサーバーを運用している場合、Dynamic DNSを用いてドメイン名とプロバイダから割り当てられたIPアドレスを登録していると思います。停電時間が短ければプロバイダのDHCPサーバーから割り当てられるIPアドレスが変化する可能性は低いと思うのですが、長時間の停電が発生すると復帰後に割り当てられるIPアドレスが停電前と異なる可能性が高くなります。
その為、Dynamic DNSへのIPアドレスアップデート間隔をより短くしておいた方が早く外部から接続出来る様になります。
ウチのサーバーも今日までは3時間に1度IPアドレスを更新する設定だったため、停電後にMacは自動的に起動したものの外部から長時間接続出来ませんでした。明日以降も計画停電が実施される様なので、更新間隔を短く設定し直してみました。
参考リンク:
Mac: 無停電電源装置 (UPS) OMRON BY50FW を導入しました!!