Linux
用於與嵌入式應用程序進行程序樹隔離的最小 system-nspawn 容器
是否可以將 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