1. はじめに
OMRON S8BAというFA用のUPSを使用することになったのですが、
・Linux用に用意されているUPS管理ソフトはPowerAttendant Lite Ver.1.05(Linux版)とSimple Shutdown Software Ver.2.40 Linux/64ビット版の2つ
・しかし、上記2つのソフトはLedHat系しか公式には対応していない。
・UbuntuにてSimple Shutdown Softwareをの動作確認事例はWEB上にいくつかある。
なので、UbuntuでSimple Shutdown Softwareを使用するための手順を書き残します。
なお、Ubuntu16.04とUbuntu22.04で実際に動作確認済みです。
2. インストール
作業ディレクトリと同じ階層にSimpleSoftwareVer240_Linux.zipがある前提で進めます。
※zipファイルのダウンロードにあたってはwgetでは403エラーで失敗してしまうので、ブラウザでダウンロードするなどしてください。
# zipファイルを解凍する
$ unzip ./SimpleSoftwareVer240_Linux.zip
# Releaseディレクトリのある階層まで移動
$ cd SimpleSoftwareVer240_Linux/SimpleSoftwareVer240_Linux_X64
# ディレクトリ以下のアクセス権限をフルアクセスに変更
$ sudo chmod –R 777 Release
# Releaseディレクトリへ移動
$ cd Release
# install.shファイルの一部を修正する
# -case `uname -n` in
# +UNAME=debian
# +
# +case $UNAME in
$ sed -i '/case `uname -n` in/,/esac/c\UNAME=debian\n\ncase $UNAME in\n\tdebian)\n\tmv -f /usr/lib/ssd/master/SimpleShutdown /etc/init.d/SimpleShutdown\n\tupdate-rc.d SimpleShutdown defaults >/dev/null 2>&1\n\t;;\n\t*)\n\tmv -f /usr/lib/ssd/master/S99SimpleShutdown /etc/init.d/S99SimpleShutdown\n\tln -s /etc/init.d/S99SimpleShutdown /etc/rc1.d/S99SimpleShutdown >/dev/null 2>&1\n\tln -s /etc/init.d/S99SimpleShutdown /etc/rc2.d/S99SimpleShutdown >/dev/null 2>&1\n\tln -s /etc/init.d/S99SimpleShutdown /etc/rc3.d/S99SimpleShutdown >/dev/null 2>&1\n\tln -s /etc/init.d/S99SimpleShutdown /etc/rc5.d/S99SimpleShutdown >/dev/null 2>&1\n\tmv -f /usr/lib/ssd/master/SimpleShutdownDaemon /etc/init.d/SimpleShutdownDaemon\n\tchkconfig --level 1235 SimpleShutdownDaemon on >/dev/null 2>&1\n\t;;\nesac' install.sh
# Simple Shutdown Softwareのソフトをインストール
$ sudo bash ./install.sh
3. シャットダウンパラメータ設定
これもSimple Shutdown Softwareの取説(zipファイル内にあるpdf)に記載がある通りです。
下記のコマンドを実行し対話形式で設定を行います。
# 事前にlusbライブラリをインストールしておく(インストールしておかないとエラーで設定できない)
$ sudo apt-get update && sudo apt-get install -y libusb-dev
# シャットダウンパラメータを設定
$ sudo /usr/lib/ssd/master/config.sh
1か所だけ気を付けないといけないのは、Ubuntuで使用する際にはUSB通信モードの選択ではHIDを選択しないといけない(らしい)ことです。
※libusb-devをインストールしているのでLibusbでも問題なくUPSと通信できると思います。
2. Select USB communication mode
1. Libusb 2.HID
(Default Mode is "Libusb")
Select Number: 2
シャットダウンパラメータは /usr/lib/ssd/master/Shutdown.cfg に保存されますので、複数台のPCで同じ設定を繰り返すならば予めShutdown.cfgを作成しておき、あとからcpコマンドで上書きしてしまうのもアリです。
(特にシャットダウンコマンドはタイプミスすると面倒なので)
4. デーモンの起動
設定後にデーモンの動作状況を確認することになるのですが、sudoで実行しないと起動/終了の切り替えができません。
$ sudo /usr/lib/ssd/master/AgentManager
1. Agent Start <-終了状態(1で実行すると起動する)
2. Communication Port
3. Version Information
0. Exit
Please Select Number:1
1. Agent Stop <-起動状態(1で実行すると終了する)
2. Communication Port
3. Version Information
0. Exit
念の為、ここまで設定できればUPSを正しく認識できているか、ssdDaemonが立ち上がっているか確認しておきましょう。
# USB接続されているデバイスの確認
$ lsusb
Device 006: ID 0590:00d5 Omron Corp. S8BA-24D24D480SBF Bus 001
# "ssd"を含むデーモンが立ち上がっているか確認
$ ps -aux|grep ssd
root 5542 0.0 0.0 6092 1796 ? S 10:04 0:00 /usr/lib/ssd/master/ssdDaemon
username 5556 0.0 0.0 10140 2432 pts/0 S+ 10:05 0:00 grep --color=auto ssd
この状態であれば、UPSの1次側電源を遮断した際にシャットダウンパラメータで設定した内容に応じて自動的にシャットダウンができるはずです。
5. デーモンの自動起動
インストールとシャットダウンパラメータを設定しただけの状態では、PCの起動時にssdDaemonが自動で立ち上がらないので、毎回手作業でAgentManagerからデーモンを起動する必要が出てきます。
しかしそれは現実的ではないので、 /usr/lib/ssd/master ディレクトリ内の SimpleShutdownDaemon スクリプトをPCの起動時にできるようにする必要があります。
# /usr/lib/ssd/master/ ディレクトリ内に SimpleShutdownDaemon があるか確認
$ ls /usr/lib/ssd/master/
AgentManager S99SimpleShutdown SimpleShutdownDaemon config.sh my_kvm.sh ssdService
Daemon.Lock Service.Lock UsbPort-HID.so.1.0.0 fifo.AgentToKernel omronctl
EventLogFile Shutdown.cfg UsbPort-Libusb.so.1.0.0 fifo.KernelToAgent ssdDaemon
# なければzipファイルを解凍したディレクトリからコピーしてきます。
cp SimpleSoftwareVer240_Linux/SimpleSoftwareVer240_Linux_X64/Release/SimpleShutdownDaemon /usr/lib/ssd/master/SimpleShutdownDaemon
# /etc/rc.localファイルに次のテキストを追記し、アクセス権も設定します。
# #!/bin/bash
#
# /usr/lib/ssd/master/SimpleShutdownDaemon start
sudo grep -qxF '/usr/lib/ssd/master/SimpleShutdownDaemon start' /etc/rc.local || sudo bash -c 'echo -e "#!/bin/bash\n\n/usr/lib/ssd/master/SimpleShutdownDaemon start" >> /etc/rc.local && chmod +x /etc/rc.local'
再起動したあとに下記のようにSimpleShutdownSoftwareに関係するデーモンが立ち上がっていれば、UPSの1次側電源を遮断しても自動的にシャットダウンができるはずです。
$ ps -aux | grep ssd
root 1759 0.1 0.0 6368 1792 ? S 00:29 0:00 /usr/lib/ssd/master/ssdService
root 1776 0.3 0.0 8916 2048 ? S 00:29 0:00 /usr/lib/ssd/master/ssdDaemon
username 3643 0.0 0.0 10208 2304 pts/0 S+ 00:29 0:00 grep --color=auto ssd
以上です
6. 参考記事