시작 (start.sh / start-daemon.sh)
Legacy native 페이지
이 페이지는 2026.05 미만 native 배포 박스 전용. 컨테이너 모드 (2026.05+) 박스는
systemctl start plantpulse-edge.service — entrypoint 가 내부 start.sh 를 호출.
컨테이너 모드 운영 가이드 참조.
1. start.sh — 전체 스택 부팅
$PE_HOME/bin/start.sh
수행 순서:
| 단계 | 컴포넌트 | 확인 포인트 |
|---|---|---|
| 1 | Docker 데몬 (없으면 띄움 — 기존 컨테이너 보존) | docker ps |
| 2 | Redis (cache, 포트 6379) | nc -z 127.0.0.1 6379 |
| 3 | HiveMQ (MQTT, 1883) | nc -z 127.0.0.1 1883 |
| 4 | Cassandra (9042) | $PE_HOME/bin/node-info.sh |
| 5 | timeseries-engine (7800) | nc -z 127.0.0.1 7800 |
| 6 | timeseries-dashboard / Grafana (3000) | nc -z 127.0.0.1 3000 |
| 7 | Tomcat (서버 — 80/443) | curl -ks https://127.0.0.1/api/v1/system/ready |
| 8 | Node-RED (/ui/flow, 1880) | nc -z 127.0.0.1 1880 |
| 9 | (백그라운드) Cassandra nodetool 정리 |
정상 출력 예 (요약):
--------------------------------------------------------------------
PLANTPULSE EDGE START ...
--------------------------------------------------------------------
[1] CACHE START ... redis ready (1s)
[2] MQTT START ... mqtt ready (13s)
[3] DATABASE START ... cassandra ready (23s)
[4] TIMESERIES ENGINE START ... timeseries-engine ready (10s)
[5] TIMESERIES DASHBOARD START ... grafana ready (1s)
[6] SERVER START ... tomcat ready (10s)
[7] FLOW TOOL START ... [NODE-RED] ready (port 1880)
--------------------------------------------------------------------
START COMPLETED [108 SEC]
--------------------------------------------------------------------
소요 ~90–120초. 마지막에 START COMPLETED 가 찍히면 정상.
| 옵션 | 설명 |
|---|---|
| (없음) | 위 순서대로 모두 부팅 |
환경 변수 PE_SKIP_DOCKER=1 | Docker 단계 건너뜀 (이미 떠 있을 때 부담 줄이기) |
2. start-daemon.sh — 백그라운드 부팅
$PE_HOME/bin/start-daemon.sh
start.sh 를 nohup ... & 로 백그라운드 실행. ssh 세션이 끊겨도 부팅이 계속 됩니다. OS 부팅 시 systemd unit / cron @reboot 같은 자동화에서 호출.
3. 자주 빠지는 함정
| 증상 | 원인 / 해결 |
|---|---|
[4] DB START ... 에서 멈춤 | Cassandra 가 commitlog 회수 중 — 보통 30초+ 대기. 로그(db/logs/system.log) 에서 Listening for thrift clients 가 나오면 OK |
[7] SERVER START 후 curl ... refused | Tomcat 시작 직후 1–2초 listen 안 됨 — 잠시 대기. 그래도 안 뜨면 catalina.out 의 SEVERE 검색 |
| Node-RED 가 안 뜸 | /data1/pp-data/node-red/.config.users.json 깨짐 가능. 로그(node/log/node-red.log) 의 Error loading flows 확인 |
| Docker 컨테이너 모두 reset | (구버전) start.sh 가 systemctl restart docker 를 했음. 현재는 이미 떠있으면 skip — 그래도 reset 되는 환경이면 PE_SKIP_DOCKER=1 사용 |
4. 검증
$PE_HOME/bin/ps.sh # 모든 컴포넌트 살아있는지
curl -s http://127.0.0.1/api/v1/edge | jq # 엣지 식별/버전
curl -s http://127.0.0.1/ui/opcua/tree | jq '.data.tree | length' # 사이트/태그 정상
5. 더 알아보기
- 정지: 중지 (
stop.sh) - 짧은 재시작: 재시작 (
restart.sh) - 시나리오 — 정전 / OS 재부팅 후 절차: 운영 시나리오