mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-08-14 20:42:50 +00:00
Remove lxc-version, lxc-ps and lxc-netstat
lxc-ps and lxc-netstat have an unfortunate tendency to break every so often, produce mostly unreadable output and should be replaced by a lxc-attach call in 99% of the cases. In an effort to cleanup the lxc-* namespace, I think those two should go, so this patch gets rid of them as well as any reference to them in our documentation. I also think that lxc-version should disappear as it's only a one line shell script printing the version string, so having a whole command just for that seems to be a bit of a waste. Instead, this patch introduces a new --version common option which all binaries will automatically inherit and that'll print LXC_VERSION on stdout and exit 0. Signed-off-by: Stéphane Graber <stgraber@ubuntu.com> Acked-by: Serge E. Hallyn <serge.hallyn@ubuntu.com>
This commit is contained in:
parent
0306de4f28
commit
7f12cae956
3
.gitignore
vendored
3
.gitignore
vendored
@ -60,8 +60,6 @@ src/lxc/lxc-info
|
|||||||
src/lxc/lxc-init
|
src/lxc/lxc-init
|
||||||
src/lxc/lxc-monitor
|
src/lxc/lxc-monitor
|
||||||
src/lxc/lxc-monitord
|
src/lxc/lxc-monitord
|
||||||
src/lxc/lxc-netstat
|
|
||||||
src/lxc/lxc-ps
|
|
||||||
src/lxc/lxc-shutdown
|
src/lxc/lxc-shutdown
|
||||||
src/lxc/lxc-snapshot
|
src/lxc/lxc-snapshot
|
||||||
src/lxc/lxc-start
|
src/lxc/lxc-start
|
||||||
@ -70,7 +68,6 @@ src/lxc/lxc-stop
|
|||||||
src/lxc/lxc-unfreeze
|
src/lxc/lxc-unfreeze
|
||||||
src/lxc/lxc-unshare
|
src/lxc/lxc-unshare
|
||||||
src/lxc/lxc-usernsexec
|
src/lxc/lxc-usernsexec
|
||||||
src/lxc/lxc-version
|
|
||||||
src/lxc/lxc-wait
|
src/lxc/lxc-wait
|
||||||
src/lxc/legacy/lxc-ls
|
src/lxc/legacy/lxc-ls
|
||||||
src/lxc/lxc-user-nic
|
src/lxc/lxc-user-nic
|
||||||
|
@ -596,8 +596,6 @@ AC_CONFIG_FILES([
|
|||||||
doc/lxc-info.sgml
|
doc/lxc-info.sgml
|
||||||
doc/lxc-ls.sgml
|
doc/lxc-ls.sgml
|
||||||
doc/lxc-monitor.sgml
|
doc/lxc-monitor.sgml
|
||||||
doc/lxc-netstat.sgml
|
|
||||||
doc/lxc-ps.sgml
|
|
||||||
doc/lxc-snapshot.sgml
|
doc/lxc-snapshot.sgml
|
||||||
doc/lxc-start-ephemeral.sgml
|
doc/lxc-start-ephemeral.sgml
|
||||||
doc/lxc-start.sgml
|
doc/lxc-start.sgml
|
||||||
@ -607,7 +605,6 @@ AC_CONFIG_FILES([
|
|||||||
doc/lxc-unshare.sgml
|
doc/lxc-unshare.sgml
|
||||||
doc/lxc-user-nic.sgml
|
doc/lxc-user-nic.sgml
|
||||||
doc/lxc-usernsexec.sgml
|
doc/lxc-usernsexec.sgml
|
||||||
doc/lxc-version.sgml
|
|
||||||
doc/lxc-wait.sgml
|
doc/lxc-wait.sgml
|
||||||
|
|
||||||
doc/lxc.conf.sgml
|
doc/lxc.conf.sgml
|
||||||
@ -643,8 +640,6 @@ AC_CONFIG_FILES([
|
|||||||
doc/ja/lxc-info.sgml
|
doc/ja/lxc-info.sgml
|
||||||
doc/ja/lxc-ls.sgml
|
doc/ja/lxc-ls.sgml
|
||||||
doc/ja/lxc-monitor.sgml
|
doc/ja/lxc-monitor.sgml
|
||||||
doc/ja/lxc-netstat.sgml
|
|
||||||
doc/ja/lxc-ps.sgml
|
|
||||||
doc/ja/lxc-snapshot.sgml
|
doc/ja/lxc-snapshot.sgml
|
||||||
doc/ja/lxc-start-ephemeral.sgml
|
doc/ja/lxc-start-ephemeral.sgml
|
||||||
doc/ja/lxc-start.sgml
|
doc/ja/lxc-start.sgml
|
||||||
@ -654,7 +649,6 @@ AC_CONFIG_FILES([
|
|||||||
doc/ja/lxc-unshare.sgml
|
doc/ja/lxc-unshare.sgml
|
||||||
doc/ja/lxc-user-nic.sgml
|
doc/ja/lxc-user-nic.sgml
|
||||||
doc/ja/lxc-usernsexec.sgml
|
doc/ja/lxc-usernsexec.sgml
|
||||||
doc/ja/lxc-version.sgml
|
|
||||||
doc/ja/lxc-wait.sgml
|
doc/ja/lxc-wait.sgml
|
||||||
|
|
||||||
doc/ja/lxc.conf.sgml
|
doc/ja/lxc.conf.sgml
|
||||||
@ -686,10 +680,7 @@ AC_CONFIG_FILES([
|
|||||||
|
|
||||||
src/Makefile
|
src/Makefile
|
||||||
src/lxc/Makefile
|
src/lxc/Makefile
|
||||||
src/lxc/lxc-ps
|
|
||||||
src/lxc/lxc-netstat
|
|
||||||
src/lxc/lxc-checkconfig
|
src/lxc/lxc-checkconfig
|
||||||
src/lxc/lxc-version
|
|
||||||
src/lxc/lxc-start-ephemeral
|
src/lxc/lxc-start-ephemeral
|
||||||
src/lxc/legacy/lxc-ls
|
src/lxc/legacy/lxc-ls
|
||||||
src/lxc/lxc.functions
|
src/lxc/lxc.functions
|
||||||
|
@ -27,8 +27,6 @@ man_MANS = \
|
|||||||
lxc-freeze.1 \
|
lxc-freeze.1 \
|
||||||
lxc-info.1 \
|
lxc-info.1 \
|
||||||
lxc-monitor.1 \
|
lxc-monitor.1 \
|
||||||
lxc-netstat.1 \
|
|
||||||
lxc-ps.1 \
|
|
||||||
lxc-snapshot.1 \
|
lxc-snapshot.1 \
|
||||||
lxc-start.1 \
|
lxc-start.1 \
|
||||||
lxc-stop.1 \
|
lxc-stop.1 \
|
||||||
@ -36,7 +34,6 @@ man_MANS = \
|
|||||||
lxc-unshare.1 \
|
lxc-unshare.1 \
|
||||||
lxc-user-nic.1 \
|
lxc-user-nic.1 \
|
||||||
lxc-usernsexec.1 \
|
lxc-usernsexec.1 \
|
||||||
lxc-version.1 \
|
|
||||||
lxc-wait.1 \
|
lxc-wait.1 \
|
||||||
\
|
\
|
||||||
lxc.conf.5 \
|
lxc.conf.5 \
|
||||||
|
@ -20,8 +20,6 @@ man_MANS = \
|
|||||||
lxc-freeze.1 \
|
lxc-freeze.1 \
|
||||||
lxc-info.1 \
|
lxc-info.1 \
|
||||||
lxc-monitor.1 \
|
lxc-monitor.1 \
|
||||||
lxc-netstat.1 \
|
|
||||||
lxc-ps.1 \
|
|
||||||
lxc-snapshot.1 \
|
lxc-snapshot.1 \
|
||||||
lxc-start.1 \
|
lxc-start.1 \
|
||||||
lxc-stop.1 \
|
lxc-stop.1 \
|
||||||
@ -29,7 +27,6 @@ man_MANS = \
|
|||||||
lxc-unshare.1 \
|
lxc-unshare.1 \
|
||||||
lxc-user-nic.1 \
|
lxc-user-nic.1 \
|
||||||
lxc-usernsexec.1 \
|
lxc-usernsexec.1 \
|
||||||
lxc-version.1 \
|
|
||||||
lxc-wait.1 \
|
lxc-wait.1 \
|
||||||
\
|
\
|
||||||
lxc.conf.5 \
|
lxc.conf.5 \
|
||||||
|
@ -1,161 +0,0 @@
|
|||||||
<!--
|
|
||||||
|
|
||||||
(C) Copyright Canonical Ltd. 2013
|
|
||||||
|
|
||||||
Authors:
|
|
||||||
Stéphane Graber <stgraber@ubuntu.com>
|
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
This library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with this library; if not, write to the Free Software
|
|
||||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
|
|
||||||
Translated into Japanese
|
|
||||||
by KATOH Yasufumi <karma at jazz.email.ne.jp>
|
|
||||||
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!DOCTYPE refentry PUBLIC @docdtd@ [
|
|
||||||
|
|
||||||
<!ENTITY seealso SYSTEM "@builddir@/see_also.sgml">
|
|
||||||
]>
|
|
||||||
|
|
||||||
<refentry>
|
|
||||||
|
|
||||||
<docinfo><date>@LXC_GENERATE_DATE@</date></docinfo>
|
|
||||||
|
|
||||||
<refmeta>
|
|
||||||
<refentrytitle>lxc-netstat</refentrytitle>
|
|
||||||
<manvolnum>1</manvolnum>
|
|
||||||
</refmeta>
|
|
||||||
|
|
||||||
<refnamediv>
|
|
||||||
<refname>lxc-netstat</refname>
|
|
||||||
|
|
||||||
<refpurpose>
|
|
||||||
<!--
|
|
||||||
run netstat for the specified container
|
|
||||||
-->
|
|
||||||
指定したコンテナに対する netstat の実行
|
|
||||||
</refpurpose>
|
|
||||||
</refnamediv>
|
|
||||||
|
|
||||||
<refsynopsisdiv>
|
|
||||||
<cmdsynopsis>
|
|
||||||
<command>lxc-netstat</command>
|
|
||||||
<arg choice="opt">--name <replaceable>name</replaceable></arg>
|
|
||||||
<arg choice="opt">-- netstat option</arg>
|
|
||||||
</cmdsynopsis>
|
|
||||||
</refsynopsisdiv>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title><!-- Description -->説明</title>
|
|
||||||
<para>
|
|
||||||
<!--
|
|
||||||
<command>lxc-netstat</command> is a wrapper to the netstat command.
|
|
||||||
-->
|
|
||||||
<command>lxc-netstat</command> は netstat コマンドのラッパーです.
|
|
||||||
</para>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title><!-- Options -->オプション</title>
|
|
||||||
<variablelist>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>
|
|
||||||
<option>-n, --name <replaceable>name</replaceable></option>
|
|
||||||
</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<!--
|
|
||||||
The container name.
|
|
||||||
-->
|
|
||||||
コンテナ名
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>
|
|
||||||
<option><optional>netstat options</optional></option>
|
|
||||||
</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<!--
|
|
||||||
The <command>netstat</command> options must be separated
|
|
||||||
from <command>lxc-netstat</command> options by
|
|
||||||
the <option>--</option> parameter.
|
|
||||||
-->
|
|
||||||
<command>netstat</command> オプションは <command>lxc-netstat</command> のオプションと <option>--</option> で分けなければなりません.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
</variablelist>
|
|
||||||
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title><!-- Example -->例</title>
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term>lxc-netstat --name foo -- -lnp</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<!--
|
|
||||||
Call netstat -lnp for container foo.
|
|
||||||
-->
|
|
||||||
コンテナ foo に対して netstat -lnp を呼び出します.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>See Also</title>
|
|
||||||
|
|
||||||
<simpara>
|
|
||||||
<citerefentry>
|
|
||||||
<refentrytitle>netstat</refentrytitle>
|
|
||||||
<manvolnum>1</manvolnum>
|
|
||||||
</citerefentry>,
|
|
||||||
</simpara>
|
|
||||||
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
&seealso;
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title><!-- Author -->作者</title>
|
|
||||||
<para>Stéphane Graber <email>stgraber@ubuntu.com</email></para>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
</refentry>
|
|
||||||
|
|
||||||
<!-- Keep this comment at the end of the file
|
|
||||||
Local variables:
|
|
||||||
mode: sgml
|
|
||||||
sgml-omittag:t
|
|
||||||
sgml-shorttag:t
|
|
||||||
sgml-minimize-attributes:nil
|
|
||||||
sgml-always-quote-attributes:t
|
|
||||||
sgml-indent-step:2
|
|
||||||
sgml-indent-data:t
|
|
||||||
sgml-parent-document:nil
|
|
||||||
sgml-default-dtd-file:nil
|
|
||||||
sgml-exposed-tags:nil
|
|
||||||
sgml-local-catalogs:nil
|
|
||||||
sgml-local-ecat-files:nil
|
|
||||||
End:
|
|
||||||
-->
|
|
@ -1,217 +0,0 @@
|
|||||||
<!--
|
|
||||||
|
|
||||||
lxc: linux Container library
|
|
||||||
|
|
||||||
(C) Copyright IBM Corp. 2007, 2008
|
|
||||||
|
|
||||||
Authors:
|
|
||||||
Daniel Lezcano <daniel.lezcano at free.fr>
|
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
This library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with this library; if not, write to the Free Software
|
|
||||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
|
|
||||||
Translated into Japanese
|
|
||||||
by KATOH Yasufumi <karma at jazz.email.ne.jp>
|
|
||||||
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!DOCTYPE refentry PUBLIC @docdtd@ [
|
|
||||||
|
|
||||||
<!ENTITY seealso SYSTEM "@builddir@/see_also.sgml">
|
|
||||||
]>
|
|
||||||
|
|
||||||
<refentry>
|
|
||||||
|
|
||||||
<docinfo><date>@LXC_GENERATE_DATE@</date></docinfo>
|
|
||||||
|
|
||||||
<refmeta>
|
|
||||||
<refentrytitle>lxc-ps</refentrytitle>
|
|
||||||
<manvolnum>1</manvolnum>
|
|
||||||
</refmeta>
|
|
||||||
|
|
||||||
<refnamediv>
|
|
||||||
<refname>lxc-ps</refname>
|
|
||||||
|
|
||||||
<refpurpose>
|
|
||||||
<!--
|
|
||||||
list the processes belonging to a specific container.
|
|
||||||
-->
|
|
||||||
指定したコンテナに属するプロセスのリスト表示
|
|
||||||
</refpurpose>
|
|
||||||
</refnamediv>
|
|
||||||
|
|
||||||
<refsynopsisdiv>
|
|
||||||
<cmdsynopsis>
|
|
||||||
<command>lxc-ps</command>
|
|
||||||
<arg choice="opt">--name <replaceable>name</replaceable></arg>
|
|
||||||
<arg choice="opt">--lxc</arg>
|
|
||||||
<arg choice="opt">--host</arg>
|
|
||||||
<arg choice="opt">-- <replaceable>ps options</replaceable></arg>
|
|
||||||
</cmdsynopsis>
|
|
||||||
</refsynopsisdiv>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title><!-- Description -->説明</title>
|
|
||||||
<para>
|
|
||||||
<!--
|
|
||||||
<command>lxc-ps</command> is a wrapper to the ps command
|
|
||||||
to report the name of lxc container associated
|
|
||||||
to reported processes.
|
|
||||||
-->
|
|
||||||
<command>lxc-ps</command> は,プロセスが属する lxc コンテナ名を報告する ps コマンドのラッパーです.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
<!--
|
|
||||||
The cgroup fs must be mounted before container creation,
|
|
||||||
to be able to have <command>lxc-ps</command> to find
|
|
||||||
the container associated to processes.
|
|
||||||
-->
|
|
||||||
<command>lxc-ps</command> がコンテナに関連するプロセスを見つけるためには,コンテナが作成される前に cgroup FS がマウントされている必要があります.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
<!--
|
|
||||||
The additional specified <replaceable>ps options</replaceable> must not
|
|
||||||
remove the default ps header and the pid information,
|
|
||||||
to be able to have the <command>lxc-ps</command> to find
|
|
||||||
the container associated to processes.
|
|
||||||
-->
|
|
||||||
<command>lxc-ps</command> がコンテナに関連したプロセスを見つけるためには,追加で指定された <replaceable>ps options</replaceable> が,標準の ps コマンドのヘッダや pid 情報を削除してはいけません.
|
|
||||||
</para>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title><!-- Options -->オプション</title>
|
|
||||||
<variablelist>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>
|
|
||||||
<option>-n, --name <replaceable>name</replaceable></option>
|
|
||||||
</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<!--
|
|
||||||
specify the container <replaceable>NAME</replaceable>
|
|
||||||
to limit the output to the processes belonging
|
|
||||||
to this container name.
|
|
||||||
-->
|
|
||||||
<replaceable>name</replaceable> で指定したコンテナに属するプロセスのみ出力します.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>
|
|
||||||
<option>--lxc</option>
|
|
||||||
</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<!--
|
|
||||||
limit the output to the processes belonging
|
|
||||||
to all lxc containers.
|
|
||||||
-->
|
|
||||||
全ての lxc コンテナに属するプロセスを出力します.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>
|
|
||||||
<option>--host</option>
|
|
||||||
</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<!--
|
|
||||||
limit the output to the processes belonging
|
|
||||||
to the host.
|
|
||||||
-->
|
|
||||||
ホスト (訳注: コンテナ以外) に属するプロセスのみを出力します.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>
|
|
||||||
<option><optional><replaceable>ps options</replaceable></optional></option>
|
|
||||||
</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<!--
|
|
||||||
The <command>ps</command> options must be separated
|
|
||||||
from <command>lxc-ps</command> options by
|
|
||||||
the <option>--</option> parameter.
|
|
||||||
-->
|
|
||||||
<command>ps</command> のオプションと,<command>lxc-ps</command> のオプションとは,<option>--</option> で区切って指定します.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
</variablelist>
|
|
||||||
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title><!-- Example -->例</title>
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term>lxc-ps --name foo -- --forest</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<!--
|
|
||||||
list all the processes belonging to container 'foo' and show
|
|
||||||
dependencies.
|
|
||||||
-->
|
|
||||||
foo という名前のコンテナに属する全てのプロセスをリスト表示し,依存関係を示します.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>See Also</title>
|
|
||||||
|
|
||||||
<simpara>
|
|
||||||
<citerefentry>
|
|
||||||
<refentrytitle>ps</refentrytitle>
|
|
||||||
<manvolnum>1</manvolnum>
|
|
||||||
</citerefentry>,
|
|
||||||
</simpara>
|
|
||||||
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
&seealso;
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title><!-- Author -->作者</title>
|
|
||||||
<para>Daniel Lezcano <email>daniel.lezcano@free.fr</email></para>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
</refentry>
|
|
||||||
|
|
||||||
<!-- Keep this comment at the end of the file
|
|
||||||
Local variables:
|
|
||||||
mode: sgml
|
|
||||||
sgml-omittag:t
|
|
||||||
sgml-shorttag:t
|
|
||||||
sgml-minimize-attributes:nil
|
|
||||||
sgml-always-quote-attributes:t
|
|
||||||
sgml-indent-step:2
|
|
||||||
sgml-indent-data:t
|
|
||||||
sgml-parent-document:nil
|
|
||||||
sgml-default-dtd-file:nil
|
|
||||||
sgml-exposed-tags:nil
|
|
||||||
sgml-local-catalogs:nil
|
|
||||||
sgml-local-ecat-files:nil
|
|
||||||
End:
|
|
||||||
-->
|
|
@ -1,108 +0,0 @@
|
|||||||
<!--
|
|
||||||
|
|
||||||
(C) Copyright Canonical Ltd.
|
|
||||||
|
|
||||||
Authors:
|
|
||||||
Stéphane Graber <stgraber@ubuntu.com>
|
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
This library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with this library; if not, write to the Free Software
|
|
||||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
|
|
||||||
Translated into Japanese
|
|
||||||
by KATOH Yasufumi <karma at jazz.email.ne.jp>
|
|
||||||
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!DOCTYPE refentry PUBLIC @docdtd@ [
|
|
||||||
|
|
||||||
<!ENTITY seealso SYSTEM "@builddir@/see_also.sgml">
|
|
||||||
]>
|
|
||||||
|
|
||||||
<refentry>
|
|
||||||
|
|
||||||
<docinfo><date>@LXC_GENERATE_DATE@</date></docinfo>
|
|
||||||
|
|
||||||
<refmeta>
|
|
||||||
<refentrytitle>lxc-version</refentrytitle>
|
|
||||||
<manvolnum>1</manvolnum>
|
|
||||||
</refmeta>
|
|
||||||
|
|
||||||
<refnamediv>
|
|
||||||
<refname>lxc-version</refname>
|
|
||||||
|
|
||||||
<refpurpose>
|
|
||||||
<!--
|
|
||||||
print the currently installed lxc version
|
|
||||||
-->
|
|
||||||
現在インストールされている lxc のバージョンの表示
|
|
||||||
</refpurpose>
|
|
||||||
</refnamediv>
|
|
||||||
|
|
||||||
<refsynopsisdiv>
|
|
||||||
<cmdsynopsis>
|
|
||||||
<command>lxc-version</command>
|
|
||||||
</cmdsynopsis>
|
|
||||||
</refsynopsisdiv>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title><!-- Description -->説明</title>
|
|
||||||
<para>
|
|
||||||
<!--
|
|
||||||
<command>lxc-version</command> print the currently installed lxc version
|
|
||||||
-->
|
|
||||||
<command>lxc-version</command> は,現在インストールされている lxc のバージョンを表示します.
|
|
||||||
</para>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title><!-- Examples -->例</title>
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term>lxc-version</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
<!--
|
|
||||||
print the currently installed lxc version.
|
|
||||||
-->
|
|
||||||
現在インストールされている lxc のバージョンを表示します.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
&seealso;
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title><!-- Author -->作者</title>
|
|
||||||
<para>Stéphane Graber <email>stgraber@ubuntu.com</email></para>
|
|
||||||
</refsect1>
|
|
||||||
</refentry>
|
|
||||||
|
|
||||||
<!-- Keep this comment at the end of the file
|
|
||||||
Local variables:
|
|
||||||
mode: sgml
|
|
||||||
sgml-omittag:t
|
|
||||||
sgml-shorttag:t
|
|
||||||
sgml-minimize-attributes:nil
|
|
||||||
sgml-always-quote-attributes:t
|
|
||||||
sgml-indent-step:2
|
|
||||||
sgml-indent-data:t
|
|
||||||
sgml-parent-document:nil
|
|
||||||
sgml-default-dtd-file:nil
|
|
||||||
sgml-exposed-tags:nil
|
|
||||||
sgml-local-catalogs:nil
|
|
||||||
sgml-local-ecat-files:nil
|
|
||||||
End:
|
|
||||||
-->
|
|
@ -682,7 +682,6 @@ rootfs
|
|||||||
following commands may be useful:
|
following commands may be useful:
|
||||||
<programlisting>
|
<programlisting>
|
||||||
lxc-ls
|
lxc-ls
|
||||||
lxc-ps --name foo
|
|
||||||
lxc-info -n foo
|
lxc-info -n foo
|
||||||
</programlisting>
|
</programlisting>
|
||||||
-->
|
-->
|
||||||
@ -690,7 +689,6 @@ rootfs
|
|||||||
このような時には,以下のようなコマンドが役に立つかもしれません.
|
このような時には,以下のようなコマンドが役に立つかもしれません.
|
||||||
<programlisting>
|
<programlisting>
|
||||||
lxc-ls
|
lxc-ls
|
||||||
lxc-ps --name foo
|
|
||||||
lxc-info -n foo
|
lxc-info -n foo
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</para>
|
</para>
|
||||||
@ -702,29 +700,6 @@ rootfs
|
|||||||
<command>lxc-ls</command> は,システムのコンテナを一覧します.
|
<command>lxc-ls</command> は,システムのコンテナを一覧します.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
|
||||||
<!--
|
|
||||||
<command>lxc-ps</command> will display the pids for a specific
|
|
||||||
container. <command>lxc-ps</command>
|
|
||||||
is built on top of <command>ps</command> and accepts the same
|
|
||||||
options, eg:
|
|
||||||
<programlisting>lxc-ps --name foo --forest</programlisting>
|
|
||||||
will display the processes hierarchy for the processes
|
|
||||||
belonging the 'foo' container.
|
|
||||||
|
|
||||||
<programlisting>lxc-ps --lxc</programlisting>
|
|
||||||
will display all the containers and their processes.
|
|
||||||
-->
|
|
||||||
<command>lxc-ps</command> は特定のコンテナに対する pid を表示します.
|
|
||||||
<command>lxc-ps</command> は <command>ps</command> コマンドをうまく利用して作られており,同じオプションを利用可能です.
|
|
||||||
例えば,
|
|
||||||
<programlisting>lxc-ps --name foo --forest</programlisting>
|
|
||||||
は 'foo' という名前のコンテナに属するプロセスを階層構造で表示します.
|
|
||||||
|
|
||||||
<programlisting>lxc-ps --lxc</programlisting>
|
|
||||||
は全てのコンテナとそのコンテナに属するプロセスを表示します.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
<!--
|
<!--
|
||||||
<command>lxc-info</command> gives information for a specific
|
<command>lxc-info</command> gives information for a specific
|
||||||
@ -742,14 +717,6 @@ rootfs
|
|||||||
lxc-info -n $i
|
lxc-info -n $i
|
||||||
done
|
done
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
And displaying all the pids of all the containers:
|
|
||||||
|
|
||||||
<programlisting>
|
|
||||||
for i in $(lxc-ls -1); do
|
|
||||||
lxc-ps --name $i --forest
|
|
||||||
done
|
|
||||||
</programlisting>
|
|
||||||
-->
|
-->
|
||||||
ここで,以上のコマンドを組み合わせて,どのようにしたら全てのコンテナのリストと,それぞれの状態が得られるかの例を示します.
|
ここで,以上のコマンドを組み合わせて,どのようにしたら全てのコンテナのリストと,それぞれの状態が得られるかの例を示します.
|
||||||
<programlisting>
|
<programlisting>
|
||||||
@ -757,39 +724,6 @@ rootfs
|
|||||||
lxc-info -n $i
|
lxc-info -n $i
|
||||||
done
|
done
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
そして,全てのコンテナの全ての pid を表示させる例です.
|
|
||||||
|
|
||||||
<programlisting>
|
|
||||||
for i in $(lxc-ls -1); do
|
|
||||||
lxc-ps --name $i --forest
|
|
||||||
done
|
|
||||||
</programlisting>
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
<!--
|
|
||||||
<command>lxc-netstat</command> display network information for
|
|
||||||
a specific container. This command is built on top of
|
|
||||||
the <command>netstat</command> command and will accept its
|
|
||||||
options
|
|
||||||
-->
|
|
||||||
<command>lxc-netstat</command> は,指定したコンテナのネットワークの情報を表示します.
|
|
||||||
このコマンドは <command>netstat</command> をうまく利用して作られており,<command>netstat</command> のオプションを受け付けます.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
<!--
|
|
||||||
The following command will display the socket information for
|
|
||||||
the container 'foo'.
|
|
||||||
<programlisting>
|
|
||||||
lxc-netstat -n foo -tano
|
|
||||||
</programlisting>
|
|
||||||
-->
|
|
||||||
以下のコマンドは,'foo' という名前のコンテナのソケット情報を表示します.
|
|
||||||
<programlisting>
|
|
||||||
lxc-netstat -n foo -tano
|
|
||||||
</programlisting>
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
</refsect2>
|
</refsect2>
|
||||||
|
@ -85,11 +85,6 @@ by KATOH Yasufumi <karma at jazz.email.ne.jp>
|
|||||||
<manvolnum>1</manvolnum>
|
<manvolnum>1</manvolnum>
|
||||||
</citerefentry>,
|
</citerefentry>,
|
||||||
|
|
||||||
<citerefentry>
|
|
||||||
<refentrytitle><command>lxc-ps</command></refentrytitle>
|
|
||||||
<manvolnum>1</manvolnum>
|
|
||||||
</citerefentry>,
|
|
||||||
|
|
||||||
<citerefentry>
|
<citerefentry>
|
||||||
<refentrytitle><command>lxc-info</command></refentrytitle>
|
<refentrytitle><command>lxc-info</command></refentrytitle>
|
||||||
<manvolnum>1</manvolnum>
|
<manvolnum>1</manvolnum>
|
||||||
|
@ -1,143 +0,0 @@
|
|||||||
<!--
|
|
||||||
|
|
||||||
(C) Copyright Canonical Ltd. 2013
|
|
||||||
|
|
||||||
Authors:
|
|
||||||
Stéphane Graber <stgraber@ubuntu.com>
|
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
This library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with this library; if not, write to the Free Software
|
|
||||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!DOCTYPE refentry PUBLIC @docdtd@ [
|
|
||||||
|
|
||||||
<!ENTITY seealso SYSTEM "@builddir@/see_also.sgml">
|
|
||||||
]>
|
|
||||||
|
|
||||||
<refentry>
|
|
||||||
|
|
||||||
<docinfo><date>@LXC_GENERATE_DATE@</date></docinfo>
|
|
||||||
|
|
||||||
<refmeta>
|
|
||||||
<refentrytitle>lxc-netstat</refentrytitle>
|
|
||||||
<manvolnum>1</manvolnum>
|
|
||||||
</refmeta>
|
|
||||||
|
|
||||||
<refnamediv>
|
|
||||||
<refname>lxc-netstat</refname>
|
|
||||||
|
|
||||||
<refpurpose>
|
|
||||||
run netstat for the specified container
|
|
||||||
</refpurpose>
|
|
||||||
</refnamediv>
|
|
||||||
|
|
||||||
<refsynopsisdiv>
|
|
||||||
<cmdsynopsis>
|
|
||||||
<command>lxc-netstat</command>
|
|
||||||
<arg choice="opt">--name <replaceable>name</replaceable></arg>
|
|
||||||
<arg choice="opt">-- netstat option</arg>
|
|
||||||
</cmdsynopsis>
|
|
||||||
</refsynopsisdiv>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Description</title>
|
|
||||||
<para>
|
|
||||||
<command>lxc-netstat</command> is a wrapper to the netstat command.
|
|
||||||
</para>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Options</title>
|
|
||||||
<variablelist>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>
|
|
||||||
<option>-n, --name <replaceable>name</replaceable></option>
|
|
||||||
</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
The container name.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>
|
|
||||||
<option><optional>netstat options</optional></option>
|
|
||||||
</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
The <command>netstat</command> options must be separated
|
|
||||||
from <command>lxc-netstat</command> options by
|
|
||||||
the <option>--</option> parameter.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
</variablelist>
|
|
||||||
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Example</title>
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term>lxc-netstat --name foo -- -lnp</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
Call netstat -lnp for container foo.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>See Also</title>
|
|
||||||
|
|
||||||
<simpara>
|
|
||||||
<citerefentry>
|
|
||||||
<refentrytitle>netstat</refentrytitle>
|
|
||||||
<manvolnum>1</manvolnum>
|
|
||||||
</citerefentry>,
|
|
||||||
</simpara>
|
|
||||||
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
&seealso;
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Author</title>
|
|
||||||
<para>Stéphane Graber <email>stgraber@ubuntu.com</email></para>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
</refentry>
|
|
||||||
|
|
||||||
<!-- Keep this comment at the end of the file
|
|
||||||
Local variables:
|
|
||||||
mode: sgml
|
|
||||||
sgml-omittag:t
|
|
||||||
sgml-shorttag:t
|
|
||||||
sgml-minimize-attributes:nil
|
|
||||||
sgml-always-quote-attributes:t
|
|
||||||
sgml-indent-step:2
|
|
||||||
sgml-indent-data:t
|
|
||||||
sgml-parent-document:nil
|
|
||||||
sgml-default-dtd-file:nil
|
|
||||||
sgml-exposed-tags:nil
|
|
||||||
sgml-local-catalogs:nil
|
|
||||||
sgml-local-ecat-files:nil
|
|
||||||
End:
|
|
||||||
-->
|
|
@ -1,188 +0,0 @@
|
|||||||
|
|
||||||
<!--
|
|
||||||
|
|
||||||
lxc: linux Container library
|
|
||||||
|
|
||||||
(C) Copyright IBM Corp. 2007, 2008
|
|
||||||
|
|
||||||
Authors:
|
|
||||||
Daniel Lezcano <daniel.lezcano at free.fr>
|
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
This library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with this library; if not, write to the Free Software
|
|
||||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!DOCTYPE refentry PUBLIC @docdtd@ [
|
|
||||||
|
|
||||||
<!ENTITY seealso SYSTEM "@builddir@/see_also.sgml">
|
|
||||||
]>
|
|
||||||
|
|
||||||
<refentry>
|
|
||||||
|
|
||||||
<docinfo><date>@LXC_GENERATE_DATE@</date></docinfo>
|
|
||||||
|
|
||||||
<refmeta>
|
|
||||||
<refentrytitle>lxc-ps</refentrytitle>
|
|
||||||
<manvolnum>1</manvolnum>
|
|
||||||
</refmeta>
|
|
||||||
|
|
||||||
<refnamediv>
|
|
||||||
<refname>lxc-ps</refname>
|
|
||||||
|
|
||||||
<refpurpose>
|
|
||||||
list the processes belonging to a specific container.
|
|
||||||
</refpurpose>
|
|
||||||
</refnamediv>
|
|
||||||
|
|
||||||
<refsynopsisdiv>
|
|
||||||
<cmdsynopsis>
|
|
||||||
<command>lxc-ps</command>
|
|
||||||
<arg choice="opt">--name <replaceable>name</replaceable></arg>
|
|
||||||
<arg choice="opt">--lxc</arg>
|
|
||||||
<arg choice="opt">--host</arg>
|
|
||||||
<arg choice="opt">-- <replaceable>ps options</replaceable></arg>
|
|
||||||
</cmdsynopsis>
|
|
||||||
</refsynopsisdiv>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Description</title>
|
|
||||||
<para>
|
|
||||||
<command>lxc-ps</command> is a wrapper to the ps command
|
|
||||||
to report the name of lxc container associated
|
|
||||||
to reported processes.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
The cgroup fs must be mounted before container creation,
|
|
||||||
to be able to have <command>lxc-ps</command> to find
|
|
||||||
the container associated to processes.
|
|
||||||
</para>
|
|
||||||
<para>
|
|
||||||
The additional specified <replaceable>ps options</replaceable> must not
|
|
||||||
remove the default ps header and the pid information,
|
|
||||||
to be able to have the <command>lxc-ps</command> to find
|
|
||||||
the container associated to processes.
|
|
||||||
</para>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Options</title>
|
|
||||||
<variablelist>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>
|
|
||||||
<option>-n, --name <replaceable>name</replaceable></option>
|
|
||||||
</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
specify the container <replaceable>name</replaceable>
|
|
||||||
to limit the output to the processes belonging
|
|
||||||
to this container name.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>
|
|
||||||
<option>--lxc</option>
|
|
||||||
</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
limit the output to the processes belonging
|
|
||||||
to all lxc containers.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>
|
|
||||||
<option>--host</option>
|
|
||||||
</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
limit the output to the processes belonging
|
|
||||||
to the host.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
<varlistentry>
|
|
||||||
<term>
|
|
||||||
<option><optional><replaceable>ps options</replaceable></optional></option>
|
|
||||||
</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
The <command>ps</command> options must be separated
|
|
||||||
from <command>lxc-ps</command> options by
|
|
||||||
the <option>--</option> parameter.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
|
|
||||||
</variablelist>
|
|
||||||
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Example</title>
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term>lxc-ps --name foo -- --forest</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
list all the processes belonging to container 'foo' and show
|
|
||||||
dependencies.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>See Also</title>
|
|
||||||
|
|
||||||
<simpara>
|
|
||||||
<citerefentry>
|
|
||||||
<refentrytitle>ps</refentrytitle>
|
|
||||||
<manvolnum>1</manvolnum>
|
|
||||||
</citerefentry>,
|
|
||||||
</simpara>
|
|
||||||
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
&seealso;
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Author</title>
|
|
||||||
<para>Daniel Lezcano <email>daniel.lezcano@free.fr</email></para>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
</refentry>
|
|
||||||
|
|
||||||
<!-- Keep this comment at the end of the file
|
|
||||||
Local variables:
|
|
||||||
mode: sgml
|
|
||||||
sgml-omittag:t
|
|
||||||
sgml-shorttag:t
|
|
||||||
sgml-minimize-attributes:nil
|
|
||||||
sgml-always-quote-attributes:t
|
|
||||||
sgml-indent-step:2
|
|
||||||
sgml-indent-data:t
|
|
||||||
sgml-parent-document:nil
|
|
||||||
sgml-default-dtd-file:nil
|
|
||||||
sgml-exposed-tags:nil
|
|
||||||
sgml-local-catalogs:nil
|
|
||||||
sgml-local-ecat-files:nil
|
|
||||||
End:
|
|
||||||
-->
|
|
@ -1,96 +0,0 @@
|
|||||||
<!--
|
|
||||||
|
|
||||||
(C) Copyright Canonical Ltd.
|
|
||||||
|
|
||||||
Authors:
|
|
||||||
Stéphane Graber <stgraber@ubuntu.com>
|
|
||||||
|
|
||||||
This library is free software; you can redistribute it and/or
|
|
||||||
modify it under the terms of the GNU Lesser General Public
|
|
||||||
License as published by the Free Software Foundation; either
|
|
||||||
version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
This library is distributed in the hope that it will be useful,
|
|
||||||
but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
Lesser General Public License for more details.
|
|
||||||
|
|
||||||
You should have received a copy of the GNU Lesser General Public
|
|
||||||
License along with this library; if not, write to the Free Software
|
|
||||||
Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
|
|
||||||
-->
|
|
||||||
|
|
||||||
<!DOCTYPE refentry PUBLIC @docdtd@ [
|
|
||||||
|
|
||||||
<!ENTITY seealso SYSTEM "@builddir@/see_also.sgml">
|
|
||||||
]>
|
|
||||||
|
|
||||||
<refentry>
|
|
||||||
|
|
||||||
<docinfo><date>@LXC_GENERATE_DATE@</date></docinfo>
|
|
||||||
|
|
||||||
<refmeta>
|
|
||||||
<refentrytitle>lxc-version</refentrytitle>
|
|
||||||
<manvolnum>1</manvolnum>
|
|
||||||
</refmeta>
|
|
||||||
|
|
||||||
<refnamediv>
|
|
||||||
<refname>lxc-version</refname>
|
|
||||||
|
|
||||||
<refpurpose>
|
|
||||||
print the currently installed lxc version
|
|
||||||
</refpurpose>
|
|
||||||
</refnamediv>
|
|
||||||
|
|
||||||
<refsynopsisdiv>
|
|
||||||
<cmdsynopsis>
|
|
||||||
<command>lxc-version</command>
|
|
||||||
</cmdsynopsis>
|
|
||||||
</refsynopsisdiv>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Description</title>
|
|
||||||
<para>
|
|
||||||
<command>lxc-version</command> print the currently installed lxc version
|
|
||||||
</para>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Examples</title>
|
|
||||||
<variablelist>
|
|
||||||
<varlistentry>
|
|
||||||
<term>lxc-version</term>
|
|
||||||
<listitem>
|
|
||||||
<para>
|
|
||||||
print the currently installed lxc version.
|
|
||||||
</para>
|
|
||||||
</listitem>
|
|
||||||
</varlistentry>
|
|
||||||
</variablelist>
|
|
||||||
</refsect1>
|
|
||||||
|
|
||||||
&seealso;
|
|
||||||
|
|
||||||
<refsect1>
|
|
||||||
<title>Author</title>
|
|
||||||
<para>Stéphane Graber <email>stgraber@ubuntu.com</email></para>
|
|
||||||
</refsect1>
|
|
||||||
</refentry>
|
|
||||||
|
|
||||||
<!-- Keep this comment at the end of the file
|
|
||||||
Local variables:
|
|
||||||
mode: sgml
|
|
||||||
sgml-omittag:t
|
|
||||||
sgml-shorttag:t
|
|
||||||
sgml-minimize-attributes:nil
|
|
||||||
sgml-always-quote-attributes:t
|
|
||||||
sgml-indent-step:2
|
|
||||||
sgml-indent-data:t
|
|
||||||
sgml-parent-document:nil
|
|
||||||
sgml-default-dtd-file:nil
|
|
||||||
sgml-exposed-tags:nil
|
|
||||||
sgml-local-catalogs:nil
|
|
||||||
sgml-local-ecat-files:nil
|
|
||||||
End:
|
|
||||||
-->
|
|
@ -457,7 +457,6 @@ rootfs
|
|||||||
following commands may be useful:
|
following commands may be useful:
|
||||||
<programlisting>
|
<programlisting>
|
||||||
lxc-ls
|
lxc-ls
|
||||||
lxc-ps --name foo
|
|
||||||
lxc-info -n foo
|
lxc-info -n foo
|
||||||
</programlisting>
|
</programlisting>
|
||||||
</para>
|
</para>
|
||||||
@ -466,19 +465,6 @@ rootfs
|
|||||||
system.
|
system.
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
<para>
|
|
||||||
<command>lxc-ps</command> will display the pids for a specific
|
|
||||||
container. <command>lxc-ps</command>
|
|
||||||
is built on top of <command>ps</command> and accepts the same
|
|
||||||
options, eg:
|
|
||||||
<programlisting>lxc-ps --name foo --forest</programlisting>
|
|
||||||
will display the processes hierarchy for the processes
|
|
||||||
belonging the 'foo' container.
|
|
||||||
|
|
||||||
<programlisting>lxc-ps --lxc</programlisting>
|
|
||||||
will display all the containers and their processes.
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
<para>
|
||||||
<command>lxc-info</command> gives information for a specific
|
<command>lxc-info</command> gives information for a specific
|
||||||
container.
|
container.
|
||||||
@ -493,29 +479,6 @@ rootfs
|
|||||||
done
|
done
|
||||||
</programlisting>
|
</programlisting>
|
||||||
|
|
||||||
And displaying all the pids of all the containers:
|
|
||||||
|
|
||||||
<programlisting>
|
|
||||||
for i in $(lxc-ls -1); do
|
|
||||||
lxc-ps --name $i --forest
|
|
||||||
done
|
|
||||||
</programlisting>
|
|
||||||
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
<command>lxc-netstat</command> display network information for
|
|
||||||
a specific container. This command is built on top of
|
|
||||||
the <command>netstat</command> command and will accept its
|
|
||||||
options
|
|
||||||
</para>
|
|
||||||
|
|
||||||
<para>
|
|
||||||
The following command will display the socket information for
|
|
||||||
the container 'foo'.
|
|
||||||
<programlisting>
|
|
||||||
lxc-netstat -n foo -tano
|
|
||||||
</programlisting>
|
|
||||||
</para>
|
</para>
|
||||||
|
|
||||||
</refsect2>
|
</refsect2>
|
||||||
|
@ -82,11 +82,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|||||||
<manvolnum>1</manvolnum>
|
<manvolnum>1</manvolnum>
|
||||||
</citerefentry>,
|
</citerefentry>,
|
||||||
|
|
||||||
<citerefentry>
|
|
||||||
<refentrytitle><command>lxc-ps</command></refentrytitle>
|
|
||||||
<manvolnum>1</manvolnum>
|
|
||||||
</citerefentry>,
|
|
||||||
|
|
||||||
<citerefentry>
|
<citerefentry>
|
||||||
<refentrytitle><command>lxc-info</command></refentrytitle>
|
<refentrytitle><command>lxc-info</command></refentrytitle>
|
||||||
<manvolnum>1</manvolnum>
|
<manvolnum>1</manvolnum>
|
||||||
|
@ -156,11 +156,7 @@ liblxc_so_LDADD += $(CGMANAGER_LIBS) $(DBUS_LIBS) $(NIH_LIBS) $(NIH_DBUS_LIBS)
|
|||||||
liblxc_so_CFLAGS += $(CGMANAGER_CFLAGS) $(DBUS_CFLAGS) $(NIH_CFLAGS) $(NIH_DBUS_CFLAGS)
|
liblxc_so_CFLAGS += $(CGMANAGER_CFLAGS) $(DBUS_CFLAGS) $(NIH_CFLAGS) $(NIH_DBUS_CFLAGS)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
bin_SCRIPTS = \
|
bin_SCRIPTS = lxc-checkconfig
|
||||||
lxc-ps \
|
|
||||||
lxc-netstat \
|
|
||||||
lxc-checkconfig \
|
|
||||||
lxc-version
|
|
||||||
|
|
||||||
EXTRA_DIST = \
|
EXTRA_DIST = \
|
||||||
lxc-device \
|
lxc-device \
|
||||||
|
@ -33,6 +33,7 @@
|
|||||||
|
|
||||||
#include "arguments.h"
|
#include "arguments.h"
|
||||||
#include "utils.h"
|
#include "utils.h"
|
||||||
|
#include "version.h"
|
||||||
|
|
||||||
/*---------------------------------------------------------------------------*/
|
/*---------------------------------------------------------------------------*/
|
||||||
static int build_shortopts(const struct option *a_options,
|
static int build_shortopts(const struct option *a_options,
|
||||||
@ -128,6 +129,11 @@ static void print_usage(const struct option longopts[],
|
|||||||
exit(0);
|
exit(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static void print_version() {
|
||||||
|
printf("%s\n", LXC_VERSION);
|
||||||
|
exit(0);
|
||||||
|
}
|
||||||
|
|
||||||
static void print_help(const struct lxc_arguments *args, int code)
|
static void print_help(const struct lxc_arguments *args, int code)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "\
|
fprintf(stderr, "\
|
||||||
@ -140,6 +146,7 @@ Common options :\n\
|
|||||||
-P, --lxcpath=PATH Use specified container path\n\
|
-P, --lxcpath=PATH Use specified container path\n\
|
||||||
-?, --help Give this help list\n\
|
-?, --help Give this help list\n\
|
||||||
--usage Give a short usage message\n\
|
--usage Give a short usage message\n\
|
||||||
|
--version Print the version number\n\
|
||||||
\n\
|
\n\
|
||||||
Mandatory or optional arguments to long options are also mandatory or optional\n\
|
Mandatory or optional arguments to long options are also mandatory or optional\n\
|
||||||
for any corresponding short options.\n\
|
for any corresponding short options.\n\
|
||||||
@ -203,6 +210,7 @@ extern int lxc_arguments_parse(struct lxc_arguments *args,
|
|||||||
return ret;
|
return ret;
|
||||||
break;
|
break;
|
||||||
case OPT_USAGE: print_usage(args->options, args);
|
case OPT_USAGE: print_usage(args->options, args);
|
||||||
|
case OPT_VERSION: print_version();
|
||||||
case '?': print_help(args, 1);
|
case '?': print_help(args, 1);
|
||||||
case 'h': print_help(args, 0);
|
case 'h': print_help(args, 0);
|
||||||
default:
|
default:
|
||||||
|
@ -105,6 +105,7 @@ struct lxc_arguments {
|
|||||||
{"name", required_argument, 0, 'n'}, \
|
{"name", required_argument, 0, 'n'}, \
|
||||||
{"help", no_argument, 0, 'h'}, \
|
{"help", no_argument, 0, 'h'}, \
|
||||||
{"usage", no_argument, 0, OPT_USAGE}, \
|
{"usage", no_argument, 0, OPT_USAGE}, \
|
||||||
|
{"version", no_argument, 0, OPT_VERSION}, \
|
||||||
{"quiet", no_argument, 0, 'q'}, \
|
{"quiet", no_argument, 0, 'q'}, \
|
||||||
{"logfile", required_argument, 0, 'o'}, \
|
{"logfile", required_argument, 0, 'o'}, \
|
||||||
{"logpriority", required_argument, 0, 'l'}, \
|
{"logpriority", required_argument, 0, 'l'}, \
|
||||||
@ -113,6 +114,7 @@ struct lxc_arguments {
|
|||||||
|
|
||||||
/* option keys for long only options */
|
/* option keys for long only options */
|
||||||
#define OPT_USAGE 0x1000
|
#define OPT_USAGE 0x1000
|
||||||
|
#define OPT_VERSION OPT_USAGE-1
|
||||||
|
|
||||||
extern int lxc_arguments_parse(struct lxc_arguments *args,
|
extern int lxc_arguments_parse(struct lxc_arguments *args,
|
||||||
int argc, char *const argv[]);
|
int argc, char *const argv[]);
|
||||||
|
@ -1,154 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
#
|
|
||||||
# lxc: linux Container library
|
|
||||||
|
|
||||||
# This library is free software; you can redistribute it and/or
|
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
|
||||||
# License as published by the Free Software Foundation; either
|
|
||||||
# version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
# This library is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
# Lesser General Public License for more details.
|
|
||||||
|
|
||||||
# You should have received a copy of the GNU Lesser General Public
|
|
||||||
# License along with this library; if not, write to the Free Software
|
|
||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
|
|
||||||
. @DATADIR@/lxc/lxc.functions
|
|
||||||
|
|
||||||
usage() {
|
|
||||||
echo "usage: $(basename $0) -n|--name <name> [-P|--lxcpath <lxc_path>] -- [netstat_options]" >&2
|
|
||||||
}
|
|
||||||
|
|
||||||
help() {
|
|
||||||
usage
|
|
||||||
echo >&2
|
|
||||||
echo "Execute 'netstat' for the specified container." >&2
|
|
||||||
echo >&2
|
|
||||||
echo " --name NAME specify the container name" >&2
|
|
||||||
echo " --lxcpath LXC_PATH use an alternate container path" >&2
|
|
||||||
echo " NETSTAT_OPTIONS netstat command options (see \`netstat --help')" >&2
|
|
||||||
}
|
|
||||||
|
|
||||||
get_parent_cgroup()
|
|
||||||
{
|
|
||||||
parent_cgroup=""
|
|
||||||
|
|
||||||
# Obtain a list of hierarchies that contain one or more subsystems
|
|
||||||
hierarchies=$(tail -n +2 /proc/cgroups | cut -f 2)
|
|
||||||
|
|
||||||
# Iterate through the list until a suitable hierarchy is found
|
|
||||||
for hierarchy in $hierarchies; do
|
|
||||||
# Obtain information about the init process in the hierarchy
|
|
||||||
fields=$(grep -E "^$hierarchy:" /proc/1/cgroup | head -n 1)
|
|
||||||
if [ -z "$fields" ]; then continue; fi
|
|
||||||
fields=${fields#*:}
|
|
||||||
|
|
||||||
# Get a comma-separated list of the hierarchy's subsystems
|
|
||||||
subsystems=${fields%:*}
|
|
||||||
|
|
||||||
# Get the cgroup of the init process in the hierarchy
|
|
||||||
init_cgroup=${fields#*:}
|
|
||||||
|
|
||||||
# Get the filesystem mountpoint of the hierarchy
|
|
||||||
mountpoint=$(awk -v subsysregex="(^|,)$subsystems(,|\$)" \
|
|
||||||
'$3 == "cgroup" && $4 ~ subsysregex {print $2}' /proc/self/mounts)
|
|
||||||
if [ -z "$mountpoint" ]; then continue; fi
|
|
||||||
|
|
||||||
# Return the absolute path to the containers' parent cgroup
|
|
||||||
# (do not append '/lxc' if the hierarchy contains the 'ns' subsystem)
|
|
||||||
case ",$subsystems," in
|
|
||||||
*,ns,*) parent_cgroup="${mountpoint}${init_cgroup%/}";;
|
|
||||||
*) parent_cgroup="${mountpoint}${init_cgroup%/}/lxc";;
|
|
||||||
esac
|
|
||||||
break
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
exec=""
|
|
||||||
|
|
||||||
while true; do
|
|
||||||
case $1 in
|
|
||||||
-h|--help)
|
|
||||||
help; exit 1;;
|
|
||||||
-n)
|
|
||||||
# If we already have a value for $name, treat -n as being an
|
|
||||||
# argument for netstat
|
|
||||||
if [ -n "$name" ]
|
|
||||||
then
|
|
||||||
break
|
|
||||||
else
|
|
||||||
name="$2"; shift 2;
|
|
||||||
fi
|
|
||||||
;;
|
|
||||||
--name)
|
|
||||||
name=$2; shift 2;;
|
|
||||||
-P|--lxcpath)
|
|
||||||
lxc_path="$2"; shift 2;;
|
|
||||||
--exec)
|
|
||||||
exec="exec"; shift;;
|
|
||||||
--)
|
|
||||||
shift; break;;
|
|
||||||
*)
|
|
||||||
break;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ "$(id -u)" != "0" ]; then
|
|
||||||
echo "$(basename $0): must be run as root" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$name" ]; then
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$lxc_path" ]; then
|
|
||||||
echo "$(basename $0): no configuration path defined" >&2
|
|
||||||
usage
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$exec" ]; then
|
|
||||||
exec @BINDIR@/lxc-unshare -s MOUNT -- $0 -n $name -P "$lxc_path" --exec -- "$@"
|
|
||||||
fi
|
|
||||||
|
|
||||||
if lxc-wait -n $name -P "$lxc_path" -s 'STOPPED' -t 0; then
|
|
||||||
echo "$(basename $0): container '$name' is not running" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
get_parent_cgroup
|
|
||||||
if [ ! -d "$parent_cgroup" ]; then
|
|
||||||
echo "$(basename $0): no cgroup mount point found" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
pid=$(head -1 $parent_cgroup/$name/tasks)
|
|
||||||
|
|
||||||
if [ -z "$pid" ]; then
|
|
||||||
echo "$(basename $0): no process found for '$name'" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
tmpdir=$(mktemp -d)
|
|
||||||
|
|
||||||
if [ -z "$tmpdir" -o ! -d "$tmpdir" ]; then
|
|
||||||
echo "$(basename $0): unable to create temporary directory" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
# Bind mount /proc/$pid/net onto /proc/net before calling 'netstat'.
|
|
||||||
# However, we can not simply bind mount on top of procfs, so we have
|
|
||||||
# to move procfs out of the way first.
|
|
||||||
mount -n --move /proc "$tmpdir" && \
|
|
||||||
mount -n -t tmpfs tmpfs /proc && \
|
|
||||||
mkdir /proc/root /proc/net && \
|
|
||||||
mount -n --move "$tmpdir" /proc/root && \
|
|
||||||
rmdir "$tmpdir" && \
|
|
||||||
mount -n --bind /proc/root/$pid/net /proc/net && \
|
|
||||||
exec netstat "$@"
|
|
@ -1,177 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
#
|
|
||||||
# lxc: linux Container library
|
|
||||||
|
|
||||||
# This library is free software; you can redistribute it and/or
|
|
||||||
# modify it under the terms of the GNU Lesser General Public
|
|
||||||
# License as published by the Free Software Foundation; either
|
|
||||||
# version 2.1 of the License, or (at your option) any later version.
|
|
||||||
|
|
||||||
# This library is distributed in the hope that it will be useful,
|
|
||||||
# but WITHOUT ANY WARRANTY; without even the implied warranty of
|
|
||||||
# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
|
|
||||||
# Lesser General Public License for more details.
|
|
||||||
|
|
||||||
# You should have received a copy of the GNU Lesser General Public
|
|
||||||
# License along with this library; if not, write to the Free Software
|
|
||||||
# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
|
|
||||||
|
|
||||||
. @DATADIR@/lxc/lxc.functions
|
|
||||||
|
|
||||||
usage()
|
|
||||||
{
|
|
||||||
echo "usage: $(basename $0) [-P PATH] [--lxc | --host | --name NAME] [[--] [PS_OPTIONS...]" >&2
|
|
||||||
}
|
|
||||||
|
|
||||||
help() {
|
|
||||||
usage
|
|
||||||
echo >&2
|
|
||||||
echo "List current processes with container names." >&2
|
|
||||||
echo >&2
|
|
||||||
echo " --lxc show processes in all containers" >&2
|
|
||||||
echo " --host show processes not related to any container, i.e. to the host" >&2
|
|
||||||
echo " --name NAME show processes in the specified container" >&2
|
|
||||||
echo " (multiple containers can be separated by commas)" >&2
|
|
||||||
echo " -P PATH show container in lxcpath PATH" >&2
|
|
||||||
echo " PS_OPTIONS ps command options (see \`ps --help')" >&2
|
|
||||||
}
|
|
||||||
|
|
||||||
get_parent_cgroup()
|
|
||||||
{
|
|
||||||
local hierarchies hierarchy fields init_cgroup mountpoint
|
|
||||||
|
|
||||||
parent_cgroup=""
|
|
||||||
subsystems=""
|
|
||||||
|
|
||||||
# Obtain a list of hierarchies that contain one or more subsystems
|
|
||||||
hierarchies=$(tail -n +2 /proc/cgroups | cut -f 2)
|
|
||||||
|
|
||||||
# Iterate through the list until a suitable hierarchy is found
|
|
||||||
for hierarchy in $hierarchies; do
|
|
||||||
# Obtain information about the init process in the hierarchy
|
|
||||||
fields=$(grep -E "^$hierarchy:" /proc/1/cgroup | head -n 1)
|
|
||||||
if [ -z "$fields" ]; then continue; fi
|
|
||||||
fields=${fields#*:}
|
|
||||||
|
|
||||||
# Get a comma-separated list of the hierarchy's subsystems
|
|
||||||
subsystems=${fields%:*}
|
|
||||||
|
|
||||||
# Get the cgroup of the init process in the hierarchy
|
|
||||||
init_cgroup=${fields#*:}
|
|
||||||
|
|
||||||
# Get the filesystem mountpoint of the hierarchy
|
|
||||||
mountpoint=$(awk -v subsysregex="(^|,)$subsystems(,|\$)" \
|
|
||||||
'$3 == "cgroup" && $4 ~ subsysregex {print $2}' /proc/self/mounts)
|
|
||||||
if [ -z "$mountpoint" ]; then continue; fi
|
|
||||||
|
|
||||||
# Return the absolute path to the containers' parent cgroup
|
|
||||||
parent_cgroup="${mountpoint}${init_cgroup%/}";
|
|
||||||
break
|
|
||||||
done
|
|
||||||
}
|
|
||||||
|
|
||||||
containers=""
|
|
||||||
list_container_processes=0
|
|
||||||
while true; do
|
|
||||||
case $1 in
|
|
||||||
-h|--help)
|
|
||||||
help; exit 1;;
|
|
||||||
-n|--name)
|
|
||||||
containers=$2; list_container_processes=1; shift 2;;
|
|
||||||
--lxc)
|
|
||||||
list_container_processes=1; shift;;
|
|
||||||
--host)
|
|
||||||
list_container_processes=-1; shift;;
|
|
||||||
-P|--lxcpath)
|
|
||||||
lxc_path=$2; shift 2;;
|
|
||||||
--)
|
|
||||||
shift; break;;
|
|
||||||
*)
|
|
||||||
break;;
|
|
||||||
esac
|
|
||||||
done
|
|
||||||
|
|
||||||
if [ "$list_container_processes" -eq "1" ]; then
|
|
||||||
set -- -e $@
|
|
||||||
fi
|
|
||||||
|
|
||||||
get_parent_cgroup
|
|
||||||
if [ ! -d "$parent_cgroup" ]; then
|
|
||||||
echo "$(basename $0): no cgroup mount point found" >&2
|
|
||||||
exit 1
|
|
||||||
fi
|
|
||||||
|
|
||||||
if [ -z "$containers" ]; then
|
|
||||||
case ",$subsystems," in
|
|
||||||
*,ns,*) containers="$(find $parent_cgroup -mindepth 1 -maxdepth 1 -type d 2>/dev/null | sed 's:.*/::')";;
|
|
||||||
*) containers="$(find $parent_cgroup/lxc -mindepth 1 -maxdepth 1 -type d 2>/dev/null | sed 's:.*/::')";;
|
|
||||||
esac
|
|
||||||
fi
|
|
||||||
|
|
||||||
container_field_width=9
|
|
||||||
tasks_files=
|
|
||||||
for container in ${containers}; do
|
|
||||||
if [ "${#container}" -gt "$container_field_width" ]; then
|
|
||||||
container_field_width=${#container}
|
|
||||||
fi
|
|
||||||
|
|
||||||
if ! lxc-wait -P $lxc_path -s STOPPED -n $container -t 0; then
|
|
||||||
initpid=`lxc-info -P $lxc_path -p -n $container | awk -F: '{ print $2 }' | awk '{ print $1 }'`
|
|
||||||
cgroup=`grep cpuset /proc/$initpid/cgroup | awk -F: '{ print $3}'`
|
|
||||||
if [ -f "$parent_cgroup/$cgroup/tasks" ]; then
|
|
||||||
tasks_files="$tasks_files $parent_cgroup$cgroup/tasks"
|
|
||||||
fi
|
|
||||||
fi
|
|
||||||
done
|
|
||||||
|
|
||||||
# first file is stdin, the rest are the container tasks
|
|
||||||
ps "$@" | awk -v container_field_width="$container_field_width" \
|
|
||||||
-v list_container_processes="$list_container_processes" '
|
|
||||||
# first line is PS header
|
|
||||||
NR == 1 {
|
|
||||||
header = $0
|
|
||||||
# find pid field index
|
|
||||||
for (i = 1; i<=NF; i++)
|
|
||||||
if ($i == "PID") {
|
|
||||||
pididx = i
|
|
||||||
break
|
|
||||||
}
|
|
||||||
if (pididx == "") {
|
|
||||||
print("No PID field found") > "/dev/stderr"
|
|
||||||
header = "" # to signal error condition to the END rule
|
|
||||||
exit 1
|
|
||||||
}
|
|
||||||
next
|
|
||||||
}
|
|
||||||
|
|
||||||
# store lines from ps with pid as index
|
|
||||||
NR == FNR {
|
|
||||||
ps_line[NR] = $0
|
|
||||||
pid_of_line[NR] = $pididx
|
|
||||||
next
|
|
||||||
}
|
|
||||||
|
|
||||||
# find container name from filename on first line
|
|
||||||
FNR == 1 {
|
|
||||||
container = FILENAME
|
|
||||||
sub(/\/tasks/, "", container)
|
|
||||||
sub(/.*\//, "", container)
|
|
||||||
}
|
|
||||||
|
|
||||||
# container tasks
|
|
||||||
{
|
|
||||||
container_of_pid[$0] = container
|
|
||||||
}
|
|
||||||
|
|
||||||
END {
|
|
||||||
if (!header) exit 1 # quit due to internal error
|
|
||||||
printf("%-" container_field_width "s %s\n", "CONTAINER", header)
|
|
||||||
for (i in ps_line) {
|
|
||||||
container = container_of_pid[pid_of_line[i]]
|
|
||||||
if (list_container_processes == 0 || (container != "") == (list_container_processes > 0) )
|
|
||||||
printf("%-" container_field_width "s %s\n", container, ps_line[i])
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
' - $tasks_files
|
|
@ -1,3 +0,0 @@
|
|||||||
#!/bin/sh
|
|
||||||
|
|
||||||
echo "lxc version: @PACKAGE_VERSION@"
|
|
Loading…
Reference in New Issue
Block a user