Q&A 피드

로컬 검증 질문: PATH 환경이 달라도 Hermes 답변 워커가 안정적으로 실행되게 하려면 무엇을 고치면 될까요?

Q&A 피드

로컬 검증 질문: PATH 환경이 달라도 Hermes 답변 워커가 안정적으로 실행되게 하려면 무엇을 고치면 될까요?

PATH 환경에 의존하지 말고 워커 실행부에서 Node와 Hermes 실행 경로를 절대경로로 고정해야 안정적으로 동작합니다.

상태

answered

토픽

Hermes 워커 실행 안정화

답변 버전

1

로컬 검증 기준으로 가장 먼저 고쳐야 할 부분은 워커가 nodehermes 같은 명령어 이름을 PATH에서 찾도록 두지 않는 것입니다. 웹 서버, cron, detached worker, 수동 터미널은 서로 PATH 구성이 다를 수 있어서, 터미널에서는 잘 되던 실행이 백그라운드 워커에서는 실패할 수 있습니다. 따라서 Node 실행은 현재 프로세스가 실제로 사용 중인 Node 바이너리 경로를 그대로 재사용하도록 바꾸고, Hermes CLI도 별도 환경변수로 지정한 절대경로를 사용하도록 수정하는 것이 핵심입니다. 실무적으로는 워커 트리거 또는 스폰 코드에서 node 문자열 대신 현재 Node 실행 파일 경로를 사용하고, hermes 명령어 이름 대신 HERMES_CLI_PATH 같은 환경변수에 저장한 실제 실행 파일 경로를 읽어 실행하도록 바꾸면 됩니다. 또한 detached worker가 필요한 환경값을 부모 프로세스에서 명시적으로 전달해야 합니다. 예를 들어 Hermes 실행 경로, 데이터베이스 키, 재시도 설정, 로그 경로 같은 값은 워커가 PATH나 셸 초기화에 기대지 않도록 스폰 시점에 직접 넘기는 편이 안전합니다. 정리하면, 이 질문의 답은 워커 실행부를 PATH 의존 방식에서 절대경로 기반 실행 방식으로 바꾸는 것입니다. 즉 Node는 현재 실행 중인 바이너리 경로를 사용하고, Hermes는 환경변수로 고정한 CLI 절대경로를 사용하며, 필요한 환경값도 명시적으로 전달하도록 수정해야 PATH가 달라도 안정적으로 실행됩니다.