임베디드 애플리케이션으로부터 프로세스 트리를 격리하기 위한 최소 system-nspawn 컨테이너

임베디드 애플리케이션으로부터 프로세스 트리를 격리하기 위한 최소 system-nspawn 컨테이너

단일 실행 파일로 nspawn을 사용할 수 있습니까? 내 목표는 이식성이 아닌 애플리케이션의 프로세스 트리를 분리하는 것입니다.

대상 플랫폼용으로 빌드된 애플리케이션을 C로 작성한다고 가정해 보겠습니다. 오늘은 systemd 단위 파일을 통해 이를 구성하여 systemd 서비스로 실행할 수 있습니다. 내 애플리케이션에 대한 최소한의 nspawn "컨테이너"를 만드는 방법이 있습니까? 내가 읽은 모든 기사는 nspawn에 debianbootstrap이 필요하다는 것을 나타냅니다. 이는 파일 크기가 300MB에 가까워집니다. 이식성에 관심이 없다면 nspawn의 프로세스 트리 격리 기능을 활용할 수 있는 다른 방법이 있습니까?

답변1

읽어봤어?systemd-nspawn맨 페이지? 여기에는 debianbootstrap이 필요하다는 내용이 전혀 없습니다. 사실 데비안이 아닌 몇 가지 예를 보여줍니다.

하다루트 파일 시스템이지만 Docker 컨테이너(또는 기존 chroot환경)와 마찬가지로 실행 파일과 공유 라이브러리 또는 실행에 필요한 기타 리소스 외에는 아무것도 필요하지 않습니다.

만약 너라면오직systemd-nspawn프로세스 트리 격리를 원하는 것이 원하는 것이 아닐 수도 있습니다 unshare.

# unshare --pid --fork --mount-proc bash
# ps -fe
UID        PID  PPID  C STIME TTY          TIME CMD
root         1     0  4 09:49 pts/0    00:00:00 bash
root        24     1  0 09:49 pts/0    00:00:00 ps -fe

관련 정보