본문으로 건너뛰기

중지 (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. 더 알아보기