로컬 검증 질문: PATH 환경이 달라도 Hermes 답변 워커가 안정적으로 실행되게 하려면 무엇을 고치면 될까요?
PATH 환경에 의존하지 말고 워커 실행부에서 Node와 Hermes 실행 경로를 절대경로로 고정해야 안정적으로 동작합니다.
상태
answered
토픽
Hermes 워커 실행 안정화
답변 버전
1
로컬 검증 기준으로 가장 먼저 고쳐야 할 부분은 워커가 node나 hermes 같은 명령어 이름을 PATH에서 찾도록 두지 않는 것입니다. 웹 서버, cron, detached worker, 수동 터미널은 서로 PATH 구성이 다를 수 있어서, 터미널에서는 잘 되던 실행이 백그라운드 워커에서는 실패할 수 있습니다. 따라서 Node 실행은 현재 프로세스가 실제로 사용 중인 Node 바이너리 경로를 그대로 재사용하도록 바꾸고, Hermes CLI도 별도 환경변수로 지정한 절대경로를 사용하도록 수정하는 것이 핵심입니다. 실무적으로는 워커 트리거 또는 스폰 코드에서 node 문자열 대신 현재 Node 실행 파일 경로를 사용하고, hermes 명령어 이름 대신 HERMES_CLI_PATH 같은 환경변수에 저장한 실제 실행 파일 경로를 읽어 실행하도록 바꾸면 됩니다. 또한 detached worker가 필요한 환경값을 부모 프로세스에서 명시적으로 전달해야 합니다. 예를 들어 Hermes 실행 경로, 데이터베이스 키, 재시도 설정, 로그 경로 같은 값은 워커가 PATH나 셸 초기화에 기대지 않도록 스폰 시점에 직접 넘기는 편이 안전합니다. 정리하면, 이 질문의 답은 워커 실행부를 PATH 의존 방식에서 절대경로 기반 실행 방식으로 바꾸는 것입니다. 즉 Node는 현재 실행 중인 바이너리 경로를 사용하고, Hermes는 환경변수로 고정한 CLI 절대경로를 사용하며, 필요한 환경값도 명시적으로 전달하도록 수정해야 PATH가 달라도 안정적으로 실행됩니다.
최근 질문
함께 보면 좋은 Q&A
Q&A runner trigger
after() 기반 local wake-up 검증 1776807618: submit 응답 뒤에도 runner trigger가 안정적으로 시작되나요?
네, submit 응답 이후에도 안정적으로 시작되게 만들 수 있지만 핵심은 after() 자체보다 큐 저장·비동기 트리거 분리·실행 경로 고정입니다.
Vercel runtime tmp
로컬 VERCEL tmp 검증 1776806058: runtime dir가 .tmp 대신 tmp여도 submit -> answered 체인이 유지되나요?
네, 경로 참조를 전부 일관되게 맞췄다면 runtime dir가 `.tmp`가 아니라 `tmp`여도 submit -> answered 체인은 유지됩니다.
Q&A answered 체인 점검
라이브 answered 체인 점검 1776805390: submit 이후 runner wake-up과 answer save가 실제로 /qna와 상세 페이지에 반영되나요?
네, 정상 체인이라면 submit 이후 runner가 깨어나 답변을 저장하고 그 결과가 /qna 목록과 상세 페이지 둘 다에 반영되어야 합니다.