単一の実行可能ファイルとしてnspawnを使用できますか?私の目標は、移植性ではなくアプリケーションのプロセスツリーを分離することです。
ターゲットプラットフォーム用に構築されたアプリケーションをCで書いているとしましょう。今日は、systemdユニットファイルを介してそれを設定してsystemdサービスとして実行できます。私のアプリケーション用に最小限のnspawn "コンテナ"を作成する方法はありますか?私が読んだすべての記事は、nspawnにdebianbootstrapが必要であることを示しています。これはファイルサイズが300 MBに近くなります。移植性に興味がない場合は、nspawnのプロセスツリー分離機能を利用する他の方法はありますか?
答え1
読んでみましたか?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