- Docker 컨테이너에서 nsenter/inotify 불가 → 30초 폴링 타이머로 변경 - kcg-backend-deploy.timer: 30초마다 JAR mtime 체크 - kcg-backend-deploy.service: JAR 갱신 감지 시 systemd 파일 교체 + restart - watcher.path(inotify 기반) 제거, deploy.timer(폴링 기반)로 교체 Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
24 lines
797 B
Desktop File
24 lines
797 B
Desktop File
[Unit]
|
|
Description=Check and restart KCG Backend if JAR updated
|
|
|
|
[Service]
|
|
Type=oneshot
|
|
ExecStart=/bin/bash -c '\
|
|
DEPLOY_DIR=/devdata/services/kcg/backend; \
|
|
JAR=$DEPLOY_DIR/kcg.jar; \
|
|
MARKER=$DEPLOY_DIR/.last-restart; \
|
|
[ ! -f "$JAR" ] && exit 0; \
|
|
if [ "$JAR" -nt "$MARKER" ] 2>/dev/null || [ ! -f "$MARKER" ]; then \
|
|
SYSTEMD_DIR=/etc/systemd/system; \
|
|
CHANGED=0; \
|
|
for f in kcg-backend.service kcg-backend-deploy.service kcg-backend-deploy.timer; do \
|
|
if [ -f "$DEPLOY_DIR/$f" ] && ! diff -q "$DEPLOY_DIR/$f" "$SYSTEMD_DIR/$f" >/dev/null 2>&1; then \
|
|
cp "$DEPLOY_DIR/$f" "$SYSTEMD_DIR/$f"; \
|
|
CHANGED=1; \
|
|
fi; \
|
|
done; \
|
|
[ "$CHANGED" = "1" ] && systemctl daemon-reload; \
|
|
systemctl restart kcg-backend; \
|
|
touch "$MARKER"; \
|
|
fi'
|