埋め込みアプリケーションからプロセスツリーを分離するための最小のsystem-nspawnコンテナ

埋め込みアプリケーションからプロセスツリーを分離するための最小のsystem-nspawnコンテナ

単一の実行可能ファイルとして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

おすすめ記事