あるかを調べましょう。新しいプロセスごとに毎回メトリクスを更新するのは、(比較的)コストがかかるので注意してください。コンテナと考えます)、毎回新しいプロセスをフォークしようとは思わないでしょう。ここでは1つのプロセスでメトリクスを収集する方法を紹介します。メトリクス・コレクションをC言語で書く必要があります(あるいは、ローレベルなシステムコールが可能な言語を使います)。いう特別なシステムコールを使えば、任意の名前空間上にある現在のプロセスを返します。これはキャッチするだけです。ファイルをオープンのままにできません。そのままにしておけば、コントロール・グループが終了しても名前空間を破棄できず、ネットワーク・リソース(コンテナの仮想インターフェース等)が残り続けるでしょう(あるいはファイル・ディスクリプタを閉じるまで)。都度、名前空間の疑似ファイルが開かれるたびに、追跡し続ける必要があります。メモリ等を使用したか知りたい時があるでしょう。依存しており、終了時は丁寧に自分自身をクリーンアップするため困難です。他にも方法があります。プラグインを実行)が簡単です。停止したコンテナに関する情報を集めたい時もあるでしょう。各コンテナで収集プロセスを開始し、コントロール・グループに移動します。書かれている場所を監視します。収集プロセスは定期的にタスクファイルを監視し、コントロール・グループの最新プロセスを確認します(先ほどのセクションで暑かったネットワーク統計情報も取得したい場合は、プロセスを適切なネットワーク名前空間にも移動します)。コントロール・グループを削除しようとします。コントロール・グループが使用中のため、処理は失敗しますが問題ありません。自分で作ったプロセスは、対象のグループ内に自分しかいないことが分かります。それが必要なメトリックスを取得する適切なタイミングです。最後に、自分のプロセスをルート・コントロール・グループに移動し、コンテナのコントロール・グループを削除します。中にファイルのではと思うかもしれませんが、これは疑似ファイルシステムのため、通常のルールは適用されません。クリーンアップが完了したら、これで収集プロセスを安全に終了できます。