systemd 및 RootDirectory=/RootImage=를 사용하는 상태=203/EXEC

systemd 및 RootDirectory=/RootImage=를 사용하는 상태=203/EXEC

Golang 애플리케이션을 사용하여 간단한 시스템 서비스를 만들려고 하는데 다음과 같은 .Unit 파일 RootDirectory=/로 인해 항상 실패합니다 .status=203/EXEC /usr/bin/app: No such file or directory

[Service]
Type=exec
RootDirectory=/srv/image
ExecStart=/usr/bin/app

내부에는 /srv/image다음과 같은 디렉토리 트리가 있습니다.

/usr/bin/app
/usr/lib/systemd/system/
/usr/lib/os-release                          
/etc/resolv.conf                             
/etc/machine-id                              
/proc/                                      
/sys/                                        
/dev/                                        
/run/                           
/tmp/                  
/var/tmp/   

BindReadOnlyPaths=누구나 이러한 디렉터리와 파일을 읽고, 쓰고, 실행할 수 있으며, 호스트에서 바인드 경로를 사용하면 systemd가 디렉터리를 찾고 심지어 다른 디렉터리를 생성할 수도 있지만 여전히 실행이 실패합니다. 같은 이유로 받을 수가 없어요휴대용 시스템 서비스일하다. 나는 편집했다GitHub 저장소의 공식 Golang 예제그러나 이것조차도 똑같은 오류 메시지와 함께 실패합니다.status=203/EXEC /bin/app: No such file or directory

최신 systemd 250이 설치된 Arch Linux(Endeavor OS Apollo)와 systemd 249가 설치된 Ubuntu Server 22.04에서 테스트했습니다. 지금까지 행운이 없습니다.

관련 정보