Linuxシステムでコンテナサービスが実行されていることを確認するコマンドはありますか?誰かが提案しましたが、unshare
これが最善のアプローチであるかどうかはわかりません。
答え1
更新:あなたの質問をもう一度読んだ後、答えが少し異なることに気づきました。サービスが実行されているかどうかを知りたいので、元のパッケージがインストールされていることを確認する方法に答えました。実際の質問に答えるには、初期化システムによって異なります。
systemd - 基本コマンドは
systemctl
すべてのサービスとそのステータスを一覧表示するため、手動で参照するか、grep
次のコマンドを介してパイプすることができますsystemctl | grep -e cgmanager -e cgproxy -e cgroupfs-mount
。またはユーザーmuruがコメントで提供したように単にsystemctl status 'cg*'
。sysVinit - 基本コマンドは
service --status-all
、grep コマンドはですservice --status-all 2>&1 | grep -e cgmanager -e cgproxy -e cgroupfs-mount
。この場合、実行中のサービスはプレフィックス表記で表示されます[+]
。また、grepが正しく機能するように2>&1
コマンドをリダイレクトする必要がありますservice
。
元の答え:
おそらく最も簡単なことは試してみることです
man cgroups
。マニュアルページが表示されたら、ホストにすでにパッケージがインストールされています。ただし、一部のインストールでは「混乱」してman
ページをインストールしません。試してみて
cgm
、出力が生成されることを確認できます。ほとんどのインストールにはcgroups
このコマンドが含まれていますが、必ずしもそうではありません。ホストディストリビューションのパッケージリストを見つけることができます。 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
設定が必要)