hostinger vps 사용중 질문입니다.
안녕하세요.
현재 Hostinger VPS에서 Docker로 Hermes를 운영하고 있습니다.
Hermes Dashboard에서 Gateway Restart 기능을 사용해 게이트웨이를 재시작하면, 변경 사항이 Slack에 정상적으로 반영되지 않는 문제가 있습니다.
로그를 확인해보면 아래와 같은 오류가 발생합니다.
```
gateway.platforms.base:
[Slack] Slack 앱 토큰이 이미 사용 중입니다 (PID 93).
다른 게이트웨이를 먼저 중지하세요.
```
이 상태에서는 Slack 연동이 정상적으로 동작하지 않으며, Docker 컨테이너 자체를 restart 해야만 변경 사항이 반영됩니다.
궁금한 점은 다음과 같습니다.
1. Hermes Dashboard의 Gateway Restart 기능이 정상적으로 기존 프로세스를 종료하지 못하는 것인지요?
2. 위와 같은 Slack 앱 토큰 중복(PID 사용 중) 오류를 해결할 방법이 있을까요?
3. Docker 컨테이너 전체를 재시작하지 않고, Gateway만 정상적으로 재시작하여 변경 사항을 반영할 수 있는 방법이 있는지 궁금합니다.
감사합니다.
답변 2
0
답변 감사합니다.
말씀을 들어보니 Hostinger VPS의 Docker 환경에서는 Docker 컨테이너를 재시작하지 않고 Gateway만 재시작하기는 어려운 것 같네요.
다름이 아니라 강의 중에 Tailscale을 사용하고 있는데, Docker를 재시작하면 세션이 끊어져 버려서요. ㅠㅠ
조금 번거롭더라도 말씀해 주신 방법대로 Docker 컨테이너를 재시작해서 사용해야 할 것 같습니다.
친절한 설명 감사드립니다.
수고하세요.
0
안녕하세요 단테입니다~
결론부터 말씀드리면 Hermes 버그가 아니라, Hostinger가 배포한 Docker 이미지의 "게이트웨이 실행 구조" 때문에 생기는 현상입니다.
1) 그 에러는 "안전장치"입니다
Slack의 Socket Mode는 앱 토큰(xapp-...) 하나당 연결 1개만 허용합니다. 게이트웨이 두 개가 같은 토큰으로 동시에 붙으면 Slack 이벤트가 둘로 쪼개지거나 끊기죠. 그래서 Hermes는 같은 토큰을 두 프로세스가 쓰지 못하도록 컴퓨터 안에 락 파일을 만들어 둡니다.
- 락 파일 위치(이 이미지 기준): /opt/data/.local/state/hermes/gateway-locks/slack-app-token-<해시>.lock
- 그 안에 현재 토큰을 점유 중인 PID가 적혀 있습니다.
제가 실제 컨테이너에서 재현해서 확인해보았습니다.
2) 그러면 왜 "재시작"했는데 기존 PID(93)가 안 죽나요?
Hermes gateway restart로 기존 프로세스가 죽으면 락은 자동으로 풀려야하는데 재시작이 기존 게이트웨이를 확실히 종료하지 못해서 토큰이 사용중이라는 메세지를 보신것 같습니다.
이유는 Hostinger 이미지의 구조입니다. Hostinger VPS의 Hermes 이미지는 공식이미지를 사용하는게 아니라 Hostinger가 자체적으로 설계한 도커 이미지를 사용합니다.
대시보드의 Gateway Restart 버튼은 내부적으로 hermes gateway restart를 실행합니다. 공식 Hermes Docker 이미지는 s6로 관리되어 이 버튼이 정상 동작합니다. 즉, PID가 겹치는 일이 없어지고 잘 재기동되도록 설계가 되어있습니다.
Hostinger 이미지에는 관리자가 없어서, 재시작을 시도하면, 기존프로세스가 종료 되기도 전에 새 게이트웨이가 락에 부딛혀버리면서 엇갈리는 현상이 있는것 같습니다.
그래서 Hotinger에서는 컨테이너 재시작을 반드시 해주어야 합니다. 게이트웨이 재시작을 따로 실행하지 않고 컨테이너 재시작이 게이트웨이 재시작이 되게 할수 있습니다.
컨테이너를 통째로 내리면 1번 프로세스 이하 모든 게이트웨이 프로세스가 죽어 락이 전부 풀리고, entrypoint가 다시 딱 1개만 띄우기 때문입니다.
아래 3개 질문에 대해 넘버링해서 답변 정리합니다.
Q1. 대시보드 재시작이 기존 프로세스를 제대로 종료하지 못하는 게 맞나요?
→ 네, 맞습니다. 다만 Hermes 자체 결함이 아니라 이 Hostinger 이미지에선 hermes gateway restart 가 제대로 동작하지 않습니다.
Q2. Slack 앱 토큰 중복(PID 사용 중) 오류를 없애려면?
→ 살아있는 기존 게이트웨이 프로세스를 모두 확실히 종료하면 락은 자동으로 풀립니다. 도커 컨테이너를 재시작하세요.

Q3. 컨테이너 전체를 안 내리고 게이트웨이만 재시작하려면?
→ 대시보드 버튼 대신 아래 docker exec 명령을 쓰세요.
먼저 컨테이너 이름을 확인합니다.(환경마다 다릅니다)
docker ps --filter name=hermes --format '{{.Names}}'아래 예시의 CONTAINER를 그 이름으로 바꾸세요.
(이 이미지의 실행 유저는 hermes, 홈은 /opt/data입니다.)
docker restart CONTAINER이 이미지에선 사실상 정식 "설정 반영" 방법입니다. 몇 초면 끝나고 깔끔합니다.
(참고: 경로 /opt/data·유저 hermes는 현재 Hostinger Hermes 이미지 기준입니다. 혹시 이미지 버전이 다르면 docker exec CONTAINER sh -lc 'echo $HERMES_HOME'로 홈 경로를 먼저 확인하세요.)
6:13 부근에서 끝나버립니다 그 다음 진행부터는 다음 진행창이 나오지 않아요
1
14
5
hermess agent 어떤것을 사용해야 하는지?
0
13
1
hermess agent 어떤것을 사용해야 하는지?
0
14
2
수강생 전용관 링크 부탁해요
0
13
2
별도로 llama3.2-3b-64k 모델을 만드신 이유가 궁금합니다.
0
17
1
VPS 환경에서 webhook 구성시 차이점.
0
26
2
Search를 들어가면 brave search가 없습니다.
0
24
2
텔레그램에 메세지 보내기
0
26
1
8.2 절 칸반보드 실행 결과에 대한 질문입니다.
0
35
2
isolated dashboard 관련 문의
0
39
2
8.1. 키움증권 연동하는 내용 잘문입니다.
0
43
2
혼자 이거저것하다보니..
0
46
2
wave 터미널, 마우스 우클릭 "File Browser" 없네요
0
33
2
Unit3.8-칸반 작업 관련
0
42
2
Unit 6.4. 영상에 있는 ethan에게 주는 블로그 콘텐츠 파이프라인 프롬프트는 어디있어요? 강의자료에서 찾기가 어려워요
0
35
2
섹션8 수업자료
0
39
1
DM에서 스레드로 답변이 오지 않습니다
0
40
2
unit 1.13 텔레그램 연동에서 그룹ID 부분
0
48
2
웹훅 설치 문의
0
50
2
칸바 교육 듣고 있는데 카드 추가할때 워크스페이스가 나와서 안되요
0
29
3
슬랙 연결 에러
0
42
2
코드 제공
0
34
2
부록1. 모델에서 LM studio와 custom endpoint 차이
0
40
2
hermes에서 클로드 쓰는법 있을까요?
0
60
2





