- オムロン製UPS「BY50S」は比較的安価で使いやすい製品だが、同梱の Linux 向けの自動シャットダウンツールは RHEL 系しかサポートしていない。
- BY50S向け自動シャットダウンツールの「SimpleShutdownSoftware」を Debian 11 (bullseye) で使えるようにした。
BY50S は Debian系Linuxをサポートしていない
オムロン社製UPSの「BY50S」は、実売価格18000円ほどで品質も必要十分なので、自宅サーバや録画機器などで使いやすい。
BY50S 向けの自動シャットダウンツールとしては、エージェントとマネージャで複数のサーバを統合管理できる「PowerAct」と、UPSと直接会話するデーモンで単体のサーバのシャットダウンだけを行う「SimpleShutdownSoftware」が提供されている。
しかし、いずれも対応OSが Windows、RHEL系Linux、macos で、Debian系Linux はサポート外となっている。
一方、 kWatanabe の自宅サーバは Debian で稼働している。そこで、「SimpleShutodownSoftware」を Debian で使うための手順を整理した。
Debian 11 で SimpleShutdownSoftware を使う
検証環境
手順
必要なパッケージを導入する。
# apt install wget unzip libusb-dev build-essential
オムロン社のWebページから「Simple Shutdown Software Ver 2.41(Linux版)」を入手し、 /usr/local/src
に配置する。
# cd /usr/local/src # wget https://socialsolution.omron.com/jp/ja/products_service/ups/support/download/soft/sss/SimpleSoftwareVer241_Linux_X64.zip # unzip SimpleSoftwareVer241_Linux_X64.zip # mv SimpleSoftwareVer241_Linux_X64 SimpleShutdownSoftware
Release/master
配下に RHEL7 向けのバイナリが保存されている。これが動作する環境ならば、そのまま利用してもよい。リビルドする場合には、以下のように Source
ディレクトリに移動してビルドする。
# cd ./SimpleShutdownSoftware/Source # make -j`nproc` # cd ../Release # ls master AgentManager* Shutdown.cfg* SimpleShutdownDaemon* UsbPort-Libusb.so.1.0.0* my_kvm.sh* ssdDaemon* S99SimpleShutdown* SimpleShutdown* UsbPort-HID.so.1.0.0* config.sh* omronctl* ssdService*
バイナリの配置と設定ファイルの生成のために、インストールスクリプトを実行する。
# ./install.sh Do you agree this license? [ y/n ] y
設定スクリプトを用いて、ファイルをしかるべき値に設定する。我が家の場合は /srv/scripts/emergency/emergency-shutdown.sh
を叩くと、全てのサーバがクリーンにシャットダウンできる仕組みを整えているので、これをキックする設定を行う。
# /usr/lib/ssd/master/config.sh ... ******************************************************************************** [Reconfirm shutdown parameter of the marine (Master Agent)]. ******************************************************************************** 1. Port Selection Mode: Semiautomatic Mode(Only select all USB device) 2. Select USB communication mode : Libusb 3. AC fail Delay time (Sec): 5 4. External Command Line: /srv/scripts/emergency/emergency-shutdown.sh 5. External Command needs time (Sec): 60 6. OS Shutdown needs time (Sec): 60 7. Send Message to login users: Enable 8. System closing mode : Shutdown 9. Virtual Server shutdown mode : Shutdown by Linux System ******************************************************************************** Select Number:1
これで、一見インストールされデーモンが起動するようにみえるが、自動起動がうまく設定されておらず、システムを再起動すると起動に失敗する。そのため、Debian 11 の環境に合わせて処置する。
まず、インストールスクリプトで導入された壊れている rc ファイルを削除する。
# find /etc/rc?.d | grep SimpleShutdown | xargs rm -v '/etc/rc1.d/S99SimpleShutdown' を削除しました '/etc/rc2.d/S99SimpleShutdown' を削除しました '/etc/rc3.d/S99SimpleShutdown' を削除しました '/etc/rc5.d/S99SimpleShutdown' を削除しました
削除した rc ファイルに変わる systemd ユニットファイルを作成する。
# vim /etc/systemd/system/SimpleShutdown.service [Unit] Description=Simple Shutdown Software [Service] Type=forking ExecStart=/usr/lib/ssd/master/ssdService KillSignal=SIGUSR1 Restart=on-abort RestartSec=3 [Install] WantedBy=multi-user.target
作成したユニットファイルを読み込ませて、システムを再起動する。
# systemctl daemon-reload # systemctl enable SimpleShutdown.service # reboot
再起動後、デーモンが起動していることを確認する。
# systemctl status SimpleShutdown ● SimpleShutdown.service - Simple Shutdown Software Loaded: loaded (/etc/systemd/system/SimpleShutdown.service; enabled; vendor preset: enabled) Active: active (running) since Sat 2022-07-23 13:21:08 JST; 14min ago Process: 683 ExecStart=/usr/lib/ssd/master/ssdService (code=exited, status=0/SUCCESS) Main PID: 699 (ssdService) Tasks: 1 (limit: 154419) Memory: 2.1M CPU: 873ms CGroup: /system.slice/SimpleShutdown.service └─699 /usr/lib/ssd/master/ssdService 7月 23 13:21:08 marine systemd[1]: Starting Simple Shutdown Software... 7月 23 13:21:08 marine systemd[1]: Started Simple Shutdown Software. 7月 23 13:21:08 marine SimpleShutdown[699]: Shutdown Agent Start.
UPSを接続して、認識していることを確認できたら、UPSの電源を抜いて動作確認する。
# lsusb Bus 002 Device 001: ID 1d6b:0003 Linux Foundation 3.0 root hub Bus 001 Device 003: ID 0590:0081 Omron Corp. BY50S Bus 001 Device 005: ID 046b:ff10 American Megatrends, Inc. Virtual Keyboard and Mouse Bus 001 Device 004: ID 046b:ffb0 American Megatrends, Inc. Virtual Ethernet Bus 001 Device 002: ID 046b:ff01 American Megatrends, Inc. Virtual Hub Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub
まとめ
- BY50S 同梱の SimpleShutodownSoftware を Debian 11 で使えるようにする手順を整備した。
- systemd でデーモンを制御できるようにしたが、 udev などで頑張ることもできるかもしれない。