この記事はこんな人向け
- 家庭内LANで、UPS配下の NAS/PCを停電時に安全停止させたい
- UPSを USBで1台のNASに接続し、そこからネットワークUPS(NUT互換)として状態を配信したい
- Synology(DS418j)、QNAP(TS-464)、Windows 11 を使っていて、UPSとNASやPCとを連携させてシンプルに動く構成を作りたい
目次
- 1. この記事のゴール
- 2. 構成と前提
- 3. 全体のタイムライン設計
- 4. DS418j(Synology DSM)の設定
- 5. TS-464(QNAP + Entware NUT)の設定
- 6. Windows 11(WinNUT Client)の設定
- 7. 停電試験手順
- 8. 実測結果
- 9. 最終的に残した設定一覧
- 付録:採用しなかった試行錯誤とハマりどころなど
1. この記事のゴール
停電(UPSが ONBATT / OB になった)ときに、家庭内のNAS/PCを安全に停止させます。
- TS-464(QNAP):停電継続 120秒 をトリガに安全シャットダウン
- Windows 11 PC:停電継続(またはONBATT)をトリガに安全シャットダウン
- DS418j(Synology):DSM標準のUPS機能で Safe Mode(スタンバイ) に入り、データ保護を最優先
2. 構成と前提
2.1 機器と役割
- UPS:APC Back-UPS RS 1000S(手元の表示名)
- UPSサーバ(Primary):Synology DS418j(例:192.168.0.2)
- UPSをUSB接続し、DSM標準機能でUPS状態を監視
- LAN上のクライアントにUPS状態を通知(「ネットワークUPSサーバ」)
- NUTクライアント(Secondary):QNAP TS-464(例:192.168.0.3)
- Entware NUT(upsmon + upssched)で ONBATT→120秒 を検知して停止
- クライアント:Windows 11(WinNUT Client)(例:192.168.0.4)
- DS418jへ接続し、停電条件で停止
この記事では IPを固定している前提で書きます。
2.2 本記事のパラメータ
パラメータは以下の値を例として書きます。 自分の環境に合わせて読み替えてください。
- ルータ(デフォルトゲートウェイ):192.168.0.1
- UPSサーバ(DS418j):192.168.0.2
- TS-464:192.168.0.3
- Windows 11 PC:192.168.0.4
- NUT上のUPS名:ups
- サブネットマスク:255.255.255.0
2.3 ネットワーク構成と接続イメージ
- ルータ:WN-DAX6000XR(例:192.168.0.1)
- スイッチ:AT-GS910/10XST
- ルータ ↔ スイッチ:10G接続
- NAS(DS418j / TS-464):スイッチに1G接続(例:DS418j=192.168.0.2、TS-464=192.168.0.3)
- Windows 11 PC:ルータに1G接続(例:192.168.0.4)。DS418j(192.168.0.2)へ疎通できればOK
また、UPS本体はUSBでDS418jへ接続し、DS418jがUPSサーバ(Network UPS Server)としてLANへ状態を配信します。
[Internet]
|
[WN-DAX6000XR ルータ 192.168.0.1]
|--10G--> [AT-GS910/10XST スイッチ]
| |--1G--> [DS418j / UPSサーバ 192.168.0.2] <--USB--> [UPS]
| `--1G--> [TS-464 192.168.0.3]
`--1G--> [Windows 11 PC 192.168.0.4]
2.4 電源(UPS配下)の接続構成
UPSには、停電時もネットワークが生きた状態を保つため、通信に関わる機器もまとめて接続しています。
- UPS(バッテリー保護側)に接続
- ONU
- WN-DAX6000XR(ルータ)
- AT-GS910/10XST(スイッチ)
- DS418j
- TS-464
- Windows 11 PC
注意:この構成だと、RS1000Sの場合バッテリー保護側コンセント口が不足します。私は電源タップ T-WRM3610LG/RS( https://www.elecom.co.jp/products/T-WRM3610LGRS.html ) を追加して口数を増やしました。
サージ保護付きのタップをUPSの前後に挟むことをメーカーが非推奨としていることがあるため、電源タップは雷ガード(サージ保護)機能が無い業務用のものを選ぶのがおすすめです。
[商用電源]
|
[UPS]
|--(AC)--> [ONU]
|--(AC)--> [ルータ]
|--(AC)--> [スイッチ]
|--(AC)--> [DS418j]
|--(AC)--> [TS-464]
`--(AC)--> [Windows 11 PC]
[UPS] --(USB)--> [DS418j] ※UPS状態監視
補足:
- UPSにバッテリー保護とサージのみのコンセントが分かれている場合、上記は原則バッテリー保護側に接続します。
- 合計消費電力がUPSの上限を超えると、想定より早く落ちたり保護動作するので、停電試験前に実測(W)とランタイムを一度確認しておくと安全です。
2.5 採用した方針(本構成)
- 各機器が自律的に落ちる(一斉制御にこだわらない)
- TS-464:ONBATT継続120秒で停止
- Windows:ONBATT継続(目安120〜150秒)で停止
- DS418j:DSM標準のSafe Mode(スタンバイ)でデータ保護
2.6 ソフトウェア/ファームウェアバージョン
| 対象 | 役割 | バージョン | 確認方法(例) |
|---|---|---|---|
| DS418j | UPSサーバ | DSM 7.1.1-42962 Update 9 | DSM:コントロールパネル → 情報センター / SSH:cat /etc.defaults/VERSION
|
| TS-464 | NUTクライアント | QTS 5.2.8.3359 Build 20251225 | QTS:コントロールパネル → システム → システムステータス |
| TS-464(Entware-std) | パッケージ基盤 | Entware-std 1.03a |
/opt/bin/opkg --version / /opt/bin/opkg list-installed
|
| TS-464(NUT/upsmon) | 停電監視 | Network UPS Tools upsmon qts_5.2.8.3325-9-g35d8059 |
upsmon -V(または upsc -V) |
| Windows PC | クライアント | Windows 11 Pro 25H2 (OS Build 26200.7623) |
winver / 設定 → システム → バージョン情報 |
| WinNUT Client | UPSクライアント | WinNUT Client 2.3.9492.23861 | WinNUTのAbout表示、またはインストール済みアプリ一覧 |
3. 全体のタイムライン設計
ここは 設定値の衝突(先にサーバが止まりクライアントが落とせない等)を避けるための最重要ポイントです。
3.1 目標タイムライン(例)
- t=0:停電(UPSが OB / ONBATT)
- t=120秒前後:TS-464 がシャットダウン開始(upssched)
- t=120〜150秒前後:Windows がシャットダウン開始(WinNUT)
- t=(上の2台が落ちた後):DS418j がSafe Mode(スタンバイ)へ
- Safe Mode=サービス停止・ボリューム保護まで行けば、データ保護としては合格扱いにします
3.2 DS418j側のスタンバイ時間の決め方
- 本構成では DS418jのスタンバイ時間を TS-464/Windows より遅くします。
- 実測で Windows が 120秒より少し遅れることもあるため、目安としては以下。
- DS418j:3分(マージンは小さめ)
- DS418j:5分(マージン重視。こちら推奨)
3.3 スタンバイ時にUPSをシャットダウンするオプション
DSMには「システムがスタンバイモードに入ったときに UPS をシャットダウンする」という項目があります。
- これは UPSの出力を止める(=UPS配下の機器が電源断される)設定です。
- 使う場合は、TS-464/Windowsの停止完了より後にDS418jがスタンバイへ入るよう、 DS418jのスタンバイ時間を5分以上にするなど、十分なマージンを取るのが安全です。
本構成ではこのオプションはOFFとします(付録で少し触れます)。
4. DS418j(Synology DSM)の設定
ここではGUIだけで設定する手順を書きます(スクリプト類は使いません)。
メニュー名はDSM 7系を想定(DSM 6系でも概ね同様の場所にあります)
4.1 UPSサポートの有効化
- コントロールパネル → ハードウェアと電源 → UPS
- UPSサポートを有効にする をON
- USBでUPSが認識されることを確認
4.2(必要なら)ネットワークUPSサーバを有効化
- ネットワークUPSサーバを有効にする をON
- 許可リスト(表示がある場合)に、少なくとも 192.168.0.3(TS-464)を追加
- Windows側が接続できない場合は 192.168.0.4(Windows 11 PC)も追加
4.3 スタンバイ(Safe Mode)までの時間を設定
- 「DiskStationがスタンバイモードに入るまでの時間」を設定
- まず動かす:3分
- マージン優先:5分(推奨)
4.4(任意)スタンバイ時にUPSをシャットダウンする
- 「システムがスタンバイモードに入ったときに UPS をシャットダウンする」は、必要に応じてON
- ONにするとUPS出力が止まり、UPS配下の機器は電源断されます
- 使うなら、TS-464/Windowsが確実に止まり切ってからDS418jがスタンバイへ入るよう、 スタンバイ時間を長め(例:5分以上)に設定するのが安全です
4.5(任意)停電復旧時の自動起動
- コントロールパネル → ハードウェアと電源 → 全般
- 「停電後自動的に再起動する」をON(運用方針に合わせて)
4.6 動作確認(ログで確認)
停電試験後、DS418jで以下のようなログが出ていればスタンバイ移行は確認できます。
sudo grep -E '\[UPS\] Server is going to Safe Mode|safe shutdown|UPS back online' /var/log/messages | tail -n 50
5. TS-464(QNAP + Entware NUT)の設定
ここでは、TS-464を NUTクライアント(secondary) として動かし、停電(ONBATT)が120秒続いたら安全シャットダウンさせます。
- UPSサーバ:DS418j(192.168.0.2)
- 監視対象:ups@192.168.0.2(NUTの指定対象)
5.1 Entware-std(1.03a)の導入
- SSHを有効化(未実施なら)
- QTSの設定でSSHを有効にし、管理者ユーザでログインできる状態にします。
- CPUアーキテクチャ確認(TS-464は通常 x86_64)
uname -m
- Entware-std(標準インストール)QPKGを入手
今回は Entware-std 1.03a を使います。
- QPKG(ダウンロードリンク): https://bin.entware.net/other/Entware_1.03a_std.qpkg
- 公式手順(Install on QNAP NAS): https://github.com/Entware/Entware/wiki/Install-on-QNAP-NAS
TS-464は通常 x86_64 なので、上記の standard 版(*_std.qpkg)で問題ありません。
- App Centerから手動インストール
- App Center → 手動でインストール → ダウンロードした
.qpkgを選択 - 警告(署名なし等)が出ても、理解したうえでインストールを進めます。
- SSHを再ログインしてPATH反映を確認
echo $PATH
# opkg は /opt/bin 配下に入るのが一般的(PATHに入っていないことがある)
ls -l /opt/bin/opkg
/opt/bin/opkg --version
/opt/bin/opkg が存在して動けばOKです。ダメなら、SSHを一度すべてログアウトして入り直すと反映されることがあります(プロファイルが読み直されるため)。
- パッケージリスト更新
/opt/bin/opkg update
注意:
/optを使う他QPKGがある環境だと競合することがあります。その場合は、/opt を使うQPKGの整理(無効化/順序調整)を先に行うと安全です。
5.2 NUT(upsmon / upssched / upsc)をEntwareで導入
NUTは用途に合わせてコンポーネント単位で入ります。本構成では クライアント側(upsmon + upssched + upsc) があれば十分です。
/opt/bin/opkg install nut-upsc nut-upsmon nut-upssched
導入確認:
upsc -V
upsmon -V
以降の設定例は、
/opt/etc/nut/配下に設定を置く前提です(Entwareのデフォルト)。
5.3 事前確認(upscで疎通)
まずはUPSサーバ(DS418j)に対して upsc が通ることを確認します。
upsc ups@192.168.0.2 ups.status
upsc ups@192.168.0.2 battery.charge
upsc ups@192.168.0.2 battery.runtime
ups.status が通常時に OL になっていればOKです。
5.4 upssched用の作業ディレクトリ
Entware NUTの設定で PIPEFN/LOCKFN を置くので作成します。
sudo mkdir -p /opt/var/run
sudo chmod 755 /opt/var/run
5.5 upsmon.conf
ポイントは3つ。
- UPSサーバ(DS418j)を
MONITORする - upsschedを
NOTIFYCMDから呼ぶ - shutdownは
/sbin/poweroffを実行
※QNAP環境では
RUN_AS_USER rootが通らない(rootが存在しない/UID0がadmin)ケースがあります。 その場合は UID0のユーザ(多くは admin) を指定してください。
/opt/etc/nut/upsmon.conf(例):
RUN_AS_USER admin
MINSUPPLIES 1
MONITOR ups@192.168.0.2 1 monuser secret secondary
SHUTDOWNCMD "/sbin/poweroff || /sbin/shutdown -h now"
# upssched呼び出し
NOTIFYCMD /opt/etc/nut/upssched-wrapper.sh
NOTIFYFLAG ONBATT EXEC
NOTIFYFLAG ONLINE EXEC
NOTIFYFLAG LOWBATT EXEC
NOTIFYFLAG FSD EXEC
monuser/secretは自環境に合わせて置き換えてください。
5.6 upssched(wrapper + conf + cmd)
Entware版 upssched は -f オプションが無いことがあるため、環境変数 UPSSCHED_CONF で設定ファイルを渡します。
upssched-wrapper.sh
/opt/etc/nut/upssched-wrapper.sh
sudo tee /opt/etc/nut/upssched-wrapper.sh >/dev/null <<'EOF'
#!/bin/sh
export UPSSCHED_CONF=/opt/etc/nut/upssched.conf
/opt/sbin/upssched 2>>/share/homes/admin/upssched_stderr.log
EOF
sudo chmod +x /opt/etc/nut/upssched-wrapper.sh
upssched.conf(ONBATT→120秒)
/opt/etc/nut/upssched.conf
CMDSCRIPT /opt/etc/nut/upssched-cmd.sh
PIPEFN /opt/var/run/upssched.pipe
LOCKFN /opt/var/run/upssched.lock
# 停電(ONBATT)が120秒続いたら落とす
AT ONBATT * START-TIMER onbatt_shutdown 120
# 復電(ONLINE)でキャンセル
AT ONLINE * CANCEL-TIMER onbatt_shutdown
# 保険(即時系)
AT LOWBATT * EXECUTE lowbatt_shutdown
AT FSD * EXECUTE fsd_shutdown
upssched-cmd.sh(誤停止ガードによる分岐)
誤停止を防ぐため、ガードファイルがあるときだけ落ちるようにします。
/opt/etc/nut/upssched-cmd.sh
sudo tee /opt/etc/nut/upssched-cmd.sh >/dev/null <<'EOF'
#!/bin/sh
EVENT="$1"
LOG="/share/homes/admin/upssched_fired.log"
echo "$(date '+%F %T') EVENT=$EVENT UPSNAME=${UPSNAME:-NA} NOTIFYTYPE=${NOTIFYTYPE:-NA}" >> "$LOG"
# 安全ガード:このファイルが無ければ落とさない
[ -f /opt/etc/nut/ALLOW_SHUTDOWN ] || exit 0
case "$EVENT" in
onbatt_shutdown|lowbatt_shutdown|fsd_shutdown)
/sbin/poweroff || /sbin/shutdown -h now
;;
esac
EOF
sudo chmod +x /opt/etc/nut/upssched-cmd.sh
本番化(ガードファイルを作る)
sudo touch /opt/etc/nut/ALLOW_SHUTDOWN
5.7 upsmonの起動(Entwareのinit)
sudo /opt/etc/init.d/S15upsmon restart
ps w | grep '[u]psmon' || echo 'no upsmon process'
ログは以下に溜まります。
- upssched発火ログ:
/share/homes/admin/upssched_fired.log - upssched stderr:
/share/homes/admin/upssched_stderr.log
6. Windows 11(WinNUT Client)の設定
Windowsは WinNUT Client で DS418j(192.168.0.2)に接続し、停電継続で安全停止させます。
6.1 インストール
WinNUT Clientは MSIでインストールするのが一番簡単です。
- GitHubの Releases ページ( https://github.com/nutdotnet/WinNUT-Client/releases )にアクセス
- 最新版のAssetsを開き、Windows向けのインストーラ(
WinNUT-Setup.msi)をダウンロード -
WinNUT-Setup.msiを実行してインストール - 初回起動時に Windows のセキュリティ警告(SmartScreen など)が出た場合は、配布元を確認のうえ続行
6.2 接続
- UPSサーバ:192.168.0.2(DS418j)
- UPS名:DS側で見えているUPS名(今回の例は
ups)
WinNUTの画面で Connected 相当になり、OL/OB が見える状態にします。
6.3 シャットダウン条件の考え方
本構成では 停電が一定時間続いたら落とす に寄せるのが扱いやすいです。
- 目安:120〜150秒(TS-464が120秒で落ち始めるため、Windowsは同等か少し後でも可)
- 余裕を見たいなら、Windowsを 120秒 に合わせる(=DSより先に落としやすい)
7. 停電試験手順
いきなり本番構成で長時間停電させず、まずは狙った順序で止まり始めることの確認を優先します。
7.1 試験前チェック
TS-464:
# ガードが有効か(本番試験では必要)
ls -la /opt/etc/nut/ALLOW_SHUTDOWN
# upsmon稼働
ps w | grep '[u]psmon' || echo 'no upsmon process'
# ログ初期化(任意)
sudo sh -c ': > /share/homes/admin/upssched_fired.log'
sudo sh -c ': > /share/homes/admin/upssched_stderr.log'
DS418j:
- DSMのUPS画面で
OLになっていること - ネットワークUPSサーバが有効で、TS-464/Windowsが接続できること
Windows:
- WinNUTが接続済みで
OLを表示できること
7.2 試験(推奨:150秒停電)
- UPSの入力(商用電源)を落として 150秒 維持
- 120秒は必ず待つ(TS-464のONBATTタイマを確実に動かすため)
観測ポイント(目安):
- t=120秒前後:TS-464がシャットダウン開始
- t=120〜150秒前後:Windowsがシャットダウン開始
- DS418j:設定した時間(例:3分/5分)でSafe Modeへ(外からは接続不可に見えることあり)
7.3 復電(戻すタイミング)
- TS-464/Windowsの停止が始まったことを確認してから戻すのが安全です。
- DS418jはSafe Modeで待機しているように見えても、本構成ではデータ保護完了とみなします。
8. 実測結果
筆者環境(今回の構成)では、停電試験で以下のような挙動を確認しました。
- TS-464:停電後 約2分でシャットダウン開始(狙いどおり)
- Windows:停電後 約2分30秒でシャットダウン開始(許容)
- DS418j:外部からは
connection refusedになり、DSM/SSHに入れない状態になるが、前面LEDは点灯したまま- これは Safe Mode(サービス停止・ボリューム保護) に入っている状態と思われるため、本構成では合格とします
8.1 合格条件(本構成)
- TS-464:
/share/homes/admin/upssched_fired.logにEVENT=onbatt_shutdownが残る - Windows:WinNUTの条件に従って停止する
- DS418j:DSMのログに Safe Mode/safe shutdown 相当が出る、またはUPS画面でスタンバイ移行が確認できる
9. 最終的に残した設定一覧
9.1 DS418j(DSM GUI)
- UPSサポート:ON
- ネットワークUPSサーバ:ON(TS-464/Windowsを許可)
- DiskStationがスタンバイモードに入るまでの時間:3分(マージン小) もしくは 5分(推奨)
- (任意)スタンバイ時にUPSをシャットダウン:運用設計ができたらON(まずはOFFでOK)
- (任意)停電後自動的に再起動:運用方針に合わせてON
9.2 TS-464(Entware NUT)
採用ファイル:
/opt/etc/nut/upsmon.conf/opt/etc/nut/upssched.conf/opt/etc/nut/upssched-wrapper.sh/opt/etc/nut/upssched-cmd.sh- ガード:
/opt/etc/nut/ALLOW_SHUTDOWN
採用ログ:
/share/homes/admin/upssched_fired.log/share/homes/admin/upssched_stderr.log
9.3 Windows(WinNUT)
- DS418jへ接続し、
OL/OBを確認できる状態にする - シャットダウン条件は ONBATT継続○秒(120〜150秒) に寄せる
付録:採用しなかった試行錯誤とハマりどころ(A〜D)
この記事の本編はとりあえず動かすことを優先しています。 ここでは、実際に試したが最終設定には採用しなかった内容や、検証時のつまずきポイントをまとめます。
A. 方針として採用しなかった案(理由つき)
A-1. DS418jからFSD(Forced Shutdown)を配って一斉制御する案
狙い:
- UPS直結のDS418jが停電継続を検知したら
upsmon -c fsdを発行し、 LAN上のクライアント(TS-464やWindows等)を一斉に落とす。
結論:
- 最終的には採用しない(=本編の各機器が自律的に落ちる方針に収束)
理由:
- DSM標準のUPS挙動(Safe Mode)と、NUT(Entware)やWindowsクライアントの挙動が混ざると切り分けが難しい
- 今回は特殊設定を重ねて設定を難しくしないことを優先した
B. DS418j:upsschedでFSD発行を試したが採用しなかった
B-1. 試行した構成(当時)
DS418j側で upssched を使い、停電継続120秒でFSDを配る案。
/usr/syno/etc/ups/upssched.conf
CMDSCRIPT /usr/syno/etc/ups/upssched-cmd.sh
PIPEFN /tmp/upssched.pipe
LOCKFN /tmp/upssched.lock
AT ONBATT * START-TIMER fsd_120s 120
AT ONLINE * CANCEL-TIMER fsd_120s
-
/usr/syno/etc/ups/upssched-cmd.sh(例)
case "$EVENT" in
fsd_120s)
/usr/sbin/upsmon -c fsd
sleep 45
/usr/sbin/synopoweroff || /sbin/poweroff || /sbin/shutdown -h now
;;
esac
加えて、誤動作防止のためにガードファイル /usr/syno/etc/ups/ALLOW_FSD があるときだけ本番動作する
B-2. 最終的に採用しなかった理由
- DSM標準のUPS動作(Safe Mode)と、手作りのFSD配布の組み合わせが複雑になりやすい
- 落ちる/落ちない、復電後に落ちるように見えるといった事象が起きたとき、 DSM標準動作なのか、FSD経由なのかの切り分けがしづらい
B-3. 本番に残さないためのクリーンアップ(今回の最終状態)
方針を本編へ切り替えたあと、DS418j側は“将来の事故”を避けるため以下を実施。
- ガードファイル削除
sudo rm -f /usr/syno/etc/ups/ALLOW_FSD
-
upssched.confのタイマを無効化
sudo sed -i 's/^AT ONBATT /#AT ONBATT /' /usr/syno/etc/ups/upssched.conf
sudo sed -i 's/^AT ONLINE /#AT ONLINE /' /usr/syno/etc/ups/upssched.conf
-
upssched-cmd.shはログだけ残して何もしない形に無害化
case "$EVENT" in
fsd_120s)
exit 0
;;
esac
C. TS-464:upssched検証で詰まりやすかった点(解決メモ)
C-1. upsschedは単体起動できない(UPSNAME/NOTIFYTYPE必須)
upssched を手で起動すると、以下のように怒られることがあります。
Error: environment variables UPSNAME and NOTIFYTYPE must be set. This program should only be run from upsmon.
これは仕様で、upssched は基本的に upsmonから呼ばれる前提です。
検証でどうしても動かしたい場合は、擬似イベントとして環境変数を付けて wrapper を呼びます。
sudo -u admin env UPSNAME=ups@192.168.0.2 NOTIFYTYPE=ONBATT /opt/etc/nut/upssched-wrapper.sh
sudo -u admin env UPSNAME=ups@192.168.0.2 NOTIFYTYPE=ONLINE /opt/etc/nut/upssched-wrapper.sh
C-2. stderrログ出力が Permission denied
2>>/share/homes/admin/upssched_stderr.log のようにリダイレクトすると、 ファイルが存在しない/所有者が違うと Permission denied になることがあります。
対処:
sudo touch /share/homes/admin/upssched_stderr.log
sudo chown admin:administrators /share/homes/admin/upssched_stderr.log
sudo chmod 664 /share/homes/admin/upssched_stderr.log
C-3. upsschedの pipe/lock が見えない
upssched.conf に PIPEFN/LOCKFN を書いているのに /opt/var/run/upssched.* が見えない場合、 upsschedが起動していないか、イベントが来ていない可能性が高いです。
確認:
ps w | grep '[u]pssched' || echo 'no upssched process'
ls -la /opt/var/run | grep -i upssched || echo 'no upssched files'
起動確認に短いタイマを一時的に入れて、pipe生成と発火を確かめる方法も有効です。
# --- temp test ---
AT ONBATT * START-TIMER pipe_test 10
AT ONLINE * CANCEL-TIMER pipe_test
C-4. QNAPのRUN_AS_USERとUIDの見え方
TS-464では ps 上は admin で動いて見えても、/proc/<pid>/status の Uid: が 0 0 0 0 になっていることがあります。 (= “admin”が実質UID0のような扱いで動いているケース)
確認例:
PID=<upsmonのPID>
cat /proc/$PID/status | grep '^Uid:'
この場合、RUN_AS_USER root と書いても ps 表示が admin のまま、という見え方になることがあります。 挙動が正解かどうかは実UIDが0で動いているかどうかで判断するのが安全そう。
C-5. 便利コマンドが無いことがある(nohup/pkill)
環境によっては nohup や pkill が無いことがあります。 プロセス制御は kill / ps / grep を基本にするのが無難です。
D. その他メモ
D-1. DS418jが落ちないように見える(LED点灯、SSH/HTTPは拒否)
固まったわけではなく、DSMのSafe Modeに入っている可能性が高いです。
- 外からは
connection refusedに見える(DSM/SSH等が停止している) - 前面LEDは点灯のまま(電源は入っている)
- UPSが給電を続ける限り、その状態で待つことがある
本構成ではSafe Modeに入ってデータ保護が完了していればOKとしました。
ログ確認(例):
sudo grep -E '\[UPS\] Server is going to Safe Mode|safe shutdown|UPS back online' /var/log/messages | tail -n 50
D-2. 復電したら落ちたように見える/起動した
Safe Mode中に復電すると、
- スタンバイ解除の遷移
- UPS状態復帰に伴うDSM側の処理
が起き、結果として落ちたあと起動したように見えることがあります。確認はログで行うのが確実。
D-3. 「スタンバイ時にUPSをシャットダウンする」をONにして良い?
ONにすると、UPS出力が止まる=同じUPS配下の機器は電源断されます。まずOFFのままで挙動を確認し、必要になったら設計してONにするのがおすすめ。