私のLinuxホストでcgroupが利用可能であることをどのように確認しますか?

私のLinuxホストでcgroupが利用可能であることをどのように確認しますか?

Linuxシステムでコンテナサービスが実行されていることを確認するコマンドはありますか?誰かが提案しましたが、unshareこれが最善のアプローチであるかどうかはわかりません。

答え1

更新:あなたの質問をもう一度読んだ後、答えが少し異なることに気づきました。サービスが実行されているかどうかを知りたいので、元のパッケージがインストールされていることを確認する方法に答えました。実際の質問に答えるには、初期化システムによって異なります。

  1. systemd - 基本コマンドはsystemctlすべてのサービスとそのステータスを一覧表示するため、手動で参照するか、grep次のコマンドを介してパイプすることができますsystemctl | grep -e cgmanager -e cgproxy -e cgroupfs-mount。またはユーザーmuruがコメントで提供したように単にsystemctl status 'cg*'

  2. sysVinit - 基本コマンドはservice --status-all、grep コマンドはですservice --status-all 2>&1 | grep -e cgmanager -e cgproxy -e cgroupfs-mount。この場合、実行中のサービスはプレフィックス表記で表示されます[+]。また、grepが正しく機能するように2>&1コマンドをリダイレクトする必要がありますservice

元の答え:

  1. おそらく最も簡単なことは試してみることですman cgroups。マニュアルページが表示されたら、ホストにすでにパッケージがインストールされています。ただし、一部のインストールでは「混乱」してmanページをインストールしません。

  2. 試してみてcgm、出力が生成されることを確認できます。ほとんどのインストールにはcgroupsこのコマンドが含まれていますが、必ずしもそうではありません。

  3. ホストディストリビューションのパッケージリストを見つけることができます。 Debian の派生製品では、dpkg -l |grep cgroupたまにシステムがrootまたは へのsudoアクセスを制限しますdpkg

他の方法もたくさんあります。

答え2

次のコマンドを使用して、カーネル構成でどのcgroup機能が有効になっているかを確認できます。

# zcat /proc/config.gz | grep CGROUP
CONFIG_CGROUPS=y
CONFIG_BLK_CGROUP=y
# CONFIG_DEBUG_BLK_CGROUP is not set
CONFIG_CGROUP_WRITEBACK=y
CONFIG_CGROUP_SCHED=y
CONFIG_CGROUP_PIDS=y
# CONFIG_CGROUP_RDMA is not set
# CONFIG_CGROUP_FREEZER is not set
CONFIG_CGROUP_HUGETLB=y
CONFIG_CGROUP_DEVICE=y
CONFIG_CGROUP_CPUACCT=y
CONFIG_CGROUP_PERF=y
# CONFIG_CGROUP_DEBUG is not set
# CONFIG_SOCK_CGROUP_DATA is not set
# CONFIG_NETFILTER_XT_MATCH_CGROUP is not set
# CONFIG_CGROUP_NET_PRIO is not set
# CONFIG_CGROUP_NET_CLASSID is not set

(注:/proc/config.gz表示するために

CONFIG_IKCONFIG=y
CONFIG_IKCONFIG_PROC=y

設定が必要)

関連情報