メインコンテンツまでスキップ

停止 (stop.sh)

Legacy native ページ

このページは 2026.05 未満の native 配布ボックス専用です。コンテナモード (2026.05+) のボックスは systemctl stop plantpulse-edge.service — entrypoint の SIGTERM trap が 内部の stop.sh (graceful な Cassandra drain を含む) を呼び出します。

1. 使用方法

$PE_HOME/bin/stop.sh

実行順序:

  1. root の stop.sh が各コンポーネントの $PE_HOME/<module>/bin/stop.sh を順番に呼び出し
  2. Tomcat → Node-RED → MQTT → timeseries-engine → timeseries-dashboard → Redis → Cassandra の順に停止
  3. 各 module stop はまず graceful な停止を試行し、STOP_TIMEOUT_SECONDS=20 以内に停止しない場合は該当コンポーネントのみ kill -9
  4. Cassandra の module stop は停止直前に nodetool flush + drain でメモリ上のダーティデータをディスクへ同期

正常時の出力:

PLANTPULSE EDGE STOP (module scripts, max 20s each) ...
SERVER STOP ... tomcat stopping ... KILL (timeout 20s)
FLOW TOOL STOP ... node-red stopping ... OK (3s)
MQTT STOP ... mqtt stopping ... OK (5s)
TIMESERIES ENGINE STOP ... timeseries-engine already stopped
TIMESERIES DASHBOARD STOP ... grafana stopping ... OK (0s)
CACHE STOP ... redis stopping ... KILL (timeout 20s)
DATABASE STOP ... cassandra stopping ... OK (1s)
STOP COMPLETED.

所要時間 約60〜90秒。


2. どのようなときに呼び出すか

  • バックアップの直前 — Cassandra の commitlog がクリーンに閉じられた状態で backup.sh が動作するように。
  • OS 再起動の直前 — drain せずに停止すると、次回起動時の commitlog 回収に時間がかかります。
  • 定期点検 — ロジック修正/パッチ適用後、クリーンな状態で再起動したいとき。
単純な Tomcat 再起動 には使用しないでください

毎回 stop.shstart.sh を呼び出すと 2〜3分のダウンタイムになります。コード/設定のみを反映するには restart.sh (Tomcat のみ再起動、6秒) を使用してください。


3. よくある落とし穴

症状原因 / 対処
nodetool drain の段階に時間がかかりすぎるメモリ上に大量の unflushed データ。通常は分単位 — ディスク I/O に余裕があるか確認
KILL (timeout 20s) が毎回発生する一部プロセスが SIGTERM を無視。通常は無害だが、毎回発生する場合は該当コンポーネントのログを点検
停止後も ps.sh にプロセスが残存する該当コンポーネントの $PE_HOME/<module>/bin/stop.sh パターン/ポート検出を確認

4. 検証

$PE_HOME/bin/ps.sh
# 출력이 비어있어야 정상

5. さらに詳しく