Linux

用於與嵌入式應用程序進行程序樹隔離的最小 system-nspawn 容器

  • October 14, 2016

是否可以將 nspawn 用於單個執行檔?我的目標只是隔離應用程序的程序樹,而不是可移植性。

假設您用 C 語言編寫了一個為您的目標平台建構的應用程序。今天,我可以通過 systemd 單元文件通過配置將其作為 systemd 服務執行。有沒有辦法為我的應用程序製作一個最小的 nspawn “容器”?我讀過的所有文章都表明 nspawn 需要 debianbootstrap,它最終會產生將近 300mb 的文件。如果我不關心可移植性,是否有其他方法可以利用 nspawn 的程序樹隔離功能?

您是否閱讀過systemd-nspawn手冊頁?裡面沒有說您需要 debianbootstrap,實際上它顯示了幾個非 debian 範例。

一個根文件系統,但就像一個 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

引用自:https://unix.stackexchange.com/questions/316412