sh -x 추적 감사합니다. 이게 결정적이었습니다. 제 진단이 틀렸습니다. 죄송합니다. rc.d가 옛날 것이라고 했는데, grep 결과(146/184/186행)를 보면 새 rc.d가 이미 설치돼 있습니다 . 제가 설치 문제로 잘못 몰았습니다. 진짜 원인은 제가 rc.d를 검토하면서 놓친 것입니다. 진짜 원인 — rc.subr 예약 변수 충돌 추적의 이 두 줄이 전부입니다: + [ -n /usr/local/etc/mihosrc/mihosrc.env ] + eval 'export -- /usr/local/etc/mihosrc/mihosrc.env' 이건 **우리 스크립트가 아니라 FreeBSD rc.subr **이 실행한 겁니다. rc.subr 은 ${name}_env 를 **"export할 KEY=VALUE 목록"**으로 해석하는 예약 규칙을 갖고 있습니다. 여기서 name=mihosrc 이므로: sh : ${mihosrc_env:="/usr/local/etc/mihosrc/mihosrc.env"} # ← 41행 이 변수명이 정확히 ${name}_env 와 충돌합니다. rc.subr 이 파일 경로 를 변수 할당 목록으로 알고 export -- /usr/local/... 를 실행 → bad variable name . stop 이든 start 든 rc.subr 이 항상 타는 경로라 모든 명령에서 납니다. 제 env 파싱 블록은 실행조차 되기 전입니다. 수정하겠습니다. 식별된 변수명 충돌을 수정하고 검증했다 식별된 변수명 충돌을 수정하고 검증했다 결정적입니다. 에이전트 rc.d에는 이 교훈이 이미 적혀 있습니다 (12–13행): # ★ mihosrcd_env / mihosrcd_user 는 rc.subr 예약어. 쓰지 말 것. # → mihosrcd_envfile / mihosrcd_runas 사용. 에이전트 쪽에선 고쳤는데 서버 rc.d에는 반영이 안 됐습니다. 말씀하신 "전에 나왔던 버그"가 맞습니다. mihosrc_user 도 같은 예약어라 함께 봐야 합니다. Inspect variable declarations and enumerate all mihosrc_* names Inspect variable declarations and enumerate all mihosrc_* names Two collisions confirmed: mihosrc_env and mihosrc_user . 에이전트와 동일한 규칙으로 고치겠습니다. 추적한 오래된 파일 참조와 실제 존재 여부 확인 추적한 오래된 파일 참조와 실제 존재 여부 확인 루트에 또 다른 mihosrc.rc.d 가 있습니다. 확인하겠습니다. 식별된 오래된 파일을 수정하고 검증했다 식별된 오래된 파일을 수정하고 검증했다 문법 통과, 남은 건 제가 쓴 설명 주석뿐입니다. 재패키징합니다. Ran a command, read a file Ran a command, read a file 다시 한번, 잘못된 진단으로 시간 뺏은 점 죄송합니다. sh -x 없이 "설치가 안 됐다"고 단정한 게 틀렸습니다. 수정 내용 freebsd/mihosrc.rc.d — rc.subr 예약어 충돌 2건: 기존 변경 이유 mihosrc_env mihosrc_envfile rc.subr이 export -- <경로> 실행 → 이 에러 mihosrc_user mihosrc_runas 같은 예약어, 잠재 충돌 에이전트 rc.d와 동일한 명명 규칙으로 맞췄고, 재발 방지용으로 예약 접미사 목록을 파일 상단에 주석으로 박아뒀습니다. 추가로 발견 : 저장소 루트에도 mihosrc.rc.d (7월 23일, 2.7KB)가 따로 있습니다. 설치 스크립트는 freebsd/mihosrc.rc.d (9.4KB)만 쓰므로 루트 것은 미사용 잔재 인데, 옛 변수명이 그대로 남아 읽는 사람을 오도합니다. 같이 고쳐뒀지만 정리(삭제) 권합니다. 두 파일 모두 sh -n 통과. 적용 sh cd ~/work/server/mihosrc_p1 # 새 타르볼로 freebsd/mihosrc.rc.d 교체 후 sudo install -o root -g wheel -m 0755 freebsd/mihosrc.rc.d /usr/local/etc/rc.d/mihosrc sudo service mihosrc configtest sudo service mihosrc start sudo service mihosrc status rc.d만 바뀌었으니 재빌드는 불필요합니다. rc.conf 에 mihosrc_env= 나 mihosrc_user= 를 직접 넣어두셨다면 mihosrc_envfile= / mihosrc_runas= 로 바꿔주세요 — 안 바꾸면 무시되고 기본값이 쓰입니다. sh grep -n 'mihosrc_' /etc/rc.conf /etc/rc.conf.d/mihosrc 2>/dev/null 남은 항목 UUID v4 패치( nodes.c )는 이 타르볼에 함께 들어 있습니다. 다만 앞서 말씀드린 대로 신규 enroll에만 적용되므로, 기존 agent-8aa97b79... 노드의 대시보드 등록은 정규식 완화가 있어야 풀립니다. configtest / start 결과 주시면 이어가겠습니다.