[lxc-devel] [PATCH] Remove lxc-verison, lxc-ps and lxc-netstat
Serge Hallyn
serge.hallyn at ubuntu.com
Wed Jan 22 18:15:05 UTC 2014
Quoting Stéphane Graber (stgraber at ubuntu.com):
> On Wed, Jan 22, 2014 at 11:21:34AM -0600, Serge Hallyn wrote:
> > Quoting Stéphane Graber (stgraber at ubuntu.com):
> > > 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 at ubuntu.com>
> >
> > Question: what about older kernels? I agree they seem unreliable at
> > best in the normal case, but lxc-ps and lxc-netstat both at least
> > sometimes worked in those cases.
>
> That's true though I'm not convinced we should actually care about those.
> People can still get away with chrooting/bind-mounting from
> /proc/$(lxc-info -n <container> -p -H)/root
>
> I see those two tools as being a lot more problems than they are worth
> and can't really think of a production use case for them. People who
> can't use lxc-attach typically won't be satisfied by just having lxc-ps
> and lxc-netstat at their disposal and will typically have SSH access
> working to the container anyway.
>
> Personaly, I tend to just use "ps faux" on the host, which when piped
> into less gives me a way easier way of looking at my running containers
> and their processes.
Yeah... I admit I never use them as they never work when I try.
And we don't want to end up wasting time on bug reports for what we
know to be broken tools.
> lxc-netstat is a bit trickier as you need to do some bind-mounts to get
> it working.
>
> They're also both confusing by the way their render PIDs. lxc-ps will
> show you the host's PIDs instead of the container's, while lxc-netstat
> is the other way around (or in most case, it simply fails to get that
> information entirely).
>
>
> I also never quite understood why we even got those to being with, it
> seems a bit odd to me that we special case ps and netstat in that way,
> surely we don't want to get similar tools for all the standard commands
> (think lsof, ...)?
>
>
> Anyway, I'm not entirely opposed to having those moved to legacy/
No no, let's remove them like you said.
Acked-by: Serge E. Hallyn <serge.hallyn at ubuntu.com>
thanks,
-serge
> instead and have them disabled by default, but I also don't think we
> want to support those for another 5 years and so think that dropping
> them now would be the better move.
>
> >
> > > ---
> > > .gitignore | 3 -
> > > configure.ac | 9 --
> > > doc/Makefile.am | 3 -
> > > doc/ja/Makefile.am | 3 -
> > > doc/ja/lxc-netstat.sgml.in | 161 ---------------------------------
> > > doc/ja/lxc-ps.sgml.in | 217 ---------------------------------------------
> > > doc/ja/lxc-version.sgml.in | 108 ----------------------
> > > doc/ja/lxc.sgml.in | 66 --------------
> > > doc/ja/see_also.sgml.in | 5 --
> > > doc/lxc-netstat.sgml.in | 143 -----------------------------
> > > doc/lxc-ps.sgml.in | 188 ---------------------------------------
> > > doc/lxc-version.sgml.in | 96 --------------------
> > > doc/lxc.sgml.in | 37 --------
> > > doc/see_also.sgml.in | 5 --
> > > src/lxc/Makefile.am | 6 +-
> > > src/lxc/arguments.c | 8 ++
> > > src/lxc/arguments.h | 2 +
> > > src/lxc/lxc-netstat.in | 154 --------------------------------
> > > src/lxc/lxc-ps.in | 177 ------------------------------------
> > > src/lxc/lxc-version.in | 3 -
> > > 20 files changed, 11 insertions(+), 1383 deletions(-)
> > > delete mode 100644 doc/ja/lxc-netstat.sgml.in
> > > delete mode 100644 doc/ja/lxc-ps.sgml.in
> > > delete mode 100644 doc/ja/lxc-version.sgml.in
> > > delete mode 100644 doc/lxc-netstat.sgml.in
> > > delete mode 100644 doc/lxc-ps.sgml.in
> > > delete mode 100644 doc/lxc-version.sgml.in
> > > delete mode 100644 src/lxc/lxc-netstat.in
> > > delete mode 100644 src/lxc/lxc-ps.in
> > > delete mode 100644 src/lxc/lxc-version.in
> > >
> > > diff --git a/.gitignore b/.gitignore
> > > index f416f39..035b8b8 100644
> > > --- a/.gitignore
> > > +++ b/.gitignore
> > > @@ -60,8 +60,6 @@ src/lxc/lxc-info
> > > src/lxc/lxc-init
> > > src/lxc/lxc-monitor
> > > src/lxc/lxc-monitord
> > > -src/lxc/lxc-netstat
> > > -src/lxc/lxc-ps
> > > src/lxc/lxc-shutdown
> > > src/lxc/lxc-snapshot
> > > src/lxc/lxc-start
> > > @@ -70,7 +68,6 @@ src/lxc/lxc-stop
> > > src/lxc/lxc-unfreeze
> > > src/lxc/lxc-unshare
> > > src/lxc/lxc-usernsexec
> > > -src/lxc/lxc-version
> > > src/lxc/lxc-wait
> > > src/lxc/legacy/lxc-ls
> > > src/lxc/lxc-user-nic
> > > diff --git a/configure.ac b/configure.ac
> > > index aad5760..b8d5103 100644
> > > --- a/configure.ac
> > > +++ b/configure.ac
> > > @@ -592,8 +592,6 @@ AC_CONFIG_FILES([
> > > doc/lxc-info.sgml
> > > doc/lxc-ls.sgml
> > > doc/lxc-monitor.sgml
> > > - doc/lxc-netstat.sgml
> > > - doc/lxc-ps.sgml
> > > doc/lxc-snapshot.sgml
> > > doc/lxc-start-ephemeral.sgml
> > > doc/lxc-start.sgml
> > > @@ -603,7 +601,6 @@ AC_CONFIG_FILES([
> > > doc/lxc-unshare.sgml
> > > doc/lxc-user-nic.sgml
> > > doc/lxc-usernsexec.sgml
> > > - doc/lxc-version.sgml
> > > doc/lxc-wait.sgml
> > >
> > > doc/lxc.conf.sgml
> > > @@ -639,8 +636,6 @@ AC_CONFIG_FILES([
> > > doc/ja/lxc-info.sgml
> > > doc/ja/lxc-ls.sgml
> > > doc/ja/lxc-monitor.sgml
> > > - doc/ja/lxc-netstat.sgml
> > > - doc/ja/lxc-ps.sgml
> > > doc/ja/lxc-snapshot.sgml
> > > doc/ja/lxc-start-ephemeral.sgml
> > > doc/ja/lxc-start.sgml
> > > @@ -650,7 +645,6 @@ AC_CONFIG_FILES([
> > > doc/ja/lxc-unshare.sgml
> > > doc/ja/lxc-user-nic.sgml
> > > doc/ja/lxc-usernsexec.sgml
> > > - doc/ja/lxc-version.sgml
> > > doc/ja/lxc-wait.sgml
> > >
> > > doc/ja/lxc.conf.sgml
> > > @@ -682,10 +676,7 @@ AC_CONFIG_FILES([
> > >
> > > src/Makefile
> > > src/lxc/Makefile
> > > - src/lxc/lxc-ps
> > > - src/lxc/lxc-netstat
> > > src/lxc/lxc-checkconfig
> > > - src/lxc/lxc-version
> > > src/lxc/lxc-start-ephemeral
> > > src/lxc/legacy/lxc-ls
> > > src/lxc/lxc.functions
> > > diff --git a/doc/Makefile.am b/doc/Makefile.am
> > > index ba3a234..e848717 100644
> > > --- a/doc/Makefile.am
> > > +++ b/doc/Makefile.am
> > > @@ -27,8 +27,6 @@ man_MANS = \
> > > lxc-freeze.1 \
> > > lxc-info.1 \
> > > lxc-monitor.1 \
> > > - lxc-netstat.1 \
> > > - lxc-ps.1 \
> > > lxc-snapshot.1 \
> > > lxc-start.1 \
> > > lxc-stop.1 \
> > > @@ -36,7 +34,6 @@ man_MANS = \
> > > lxc-unshare.1 \
> > > lxc-user-nic.1 \
> > > lxc-usernsexec.1 \
> > > - lxc-version.1 \
> > > lxc-wait.1 \
> > > \
> > > lxc.conf.5 \
> > > diff --git a/doc/ja/Makefile.am b/doc/ja/Makefile.am
> > > index fccc66b..45b3aa2 100644
> > > --- a/doc/ja/Makefile.am
> > > +++ b/doc/ja/Makefile.am
> > > @@ -20,8 +20,6 @@ man_MANS = \
> > > lxc-freeze.1 \
> > > lxc-info.1 \
> > > lxc-monitor.1 \
> > > - lxc-netstat.1 \
> > > - lxc-ps.1 \
> > > lxc-snapshot.1 \
> > > lxc-start.1 \
> > > lxc-stop.1 \
> > > @@ -29,7 +27,6 @@ man_MANS = \
> > > lxc-unshare.1 \
> > > lxc-user-nic.1 \
> > > lxc-usernsexec.1 \
> > > - lxc-version.1 \
> > > lxc-wait.1 \
> > > \
> > > lxc.conf.5 \
> > > diff --git a/doc/ja/lxc-netstat.sgml.in b/doc/ja/lxc-netstat.sgml.in
> > > deleted file mode 100644
> > > index 790d384..0000000
> > > --- a/doc/ja/lxc-netstat.sgml.in
> > > +++ /dev/null
> > > @@ -1,161 +0,0 @@
> > > -<!--
> > > -
> > > -(C) Copyright Canonical Ltd. 2013
> > > -
> > > -Authors:
> > > -Stéphane Graber <stgraber at 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 at 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:
> > > --->
> > > diff --git a/doc/ja/lxc-ps.sgml.in b/doc/ja/lxc-ps.sgml.in
> > > deleted file mode 100644
> > > index 2666fc4..0000000
> > > --- a/doc/ja/lxc-ps.sgml.in
> > > +++ /dev/null
> > > @@ -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 at 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:
> > > --->
> > > diff --git a/doc/ja/lxc-version.sgml.in b/doc/ja/lxc-version.sgml.in
> > > deleted file mode 100644
> > > index 4d6d710..0000000
> > > --- a/doc/ja/lxc-version.sgml.in
> > > +++ /dev/null
> > > @@ -1,108 +0,0 @@
> > > -<!--
> > > -
> > > -(C) Copyright Canonical Ltd.
> > > -
> > > -Authors:
> > > -Stéphane Graber <stgraber at 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 at 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:
> > > --->
> > > diff --git a/doc/ja/lxc.sgml.in b/doc/ja/lxc.sgml.in
> > > index 6077b99..0258bfa 100644
> > > --- a/doc/ja/lxc.sgml.in
> > > +++ b/doc/ja/lxc.sgml.in
> > > @@ -682,7 +682,6 @@ rootfs
> > > following commands may be useful:
> > > <programlisting>
> > > lxc-ls
> > > - lxc-ps --name foo
> > > lxc-info -n foo
> > > </programlisting>
> > > -->
> > > @@ -690,7 +689,6 @@ rootfs
> > > このような時には,以下のようなコマンドが役に立つかもしれません.
> > > <programlisting>
> > > lxc-ls
> > > - lxc-ps --name foo
> > > lxc-info -n foo
> > > </programlisting>
> > > </para>
> > > @@ -704,29 +702,6 @@ rootfs
> > >
> > > <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>
> > > - <!--
> > > <command>lxc-info</command> gives information for a specific
> > > container.
> > > -->
> > > @@ -742,14 +717,6 @@ rootfs
> > > lxc-info -n $i
> > > done
> > > </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>
> > > @@ -757,39 +724,6 @@ rootfs
> > > lxc-info -n $i
> > > done
> > > </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>
> > >
> > > </refsect2>
> > > diff --git a/doc/ja/see_also.sgml.in b/doc/ja/see_also.sgml.in
> > > index 4c579f4..44d5cb8 100644
> > > --- a/doc/ja/see_also.sgml.in
> > > +++ b/doc/ja/see_also.sgml.in
> > > @@ -86,11 +86,6 @@ by KATOH Yasufumi <karma at jazz.email.ne.jp>
> > > </citerefentry>,
> > >
> > > <citerefentry>
> > > - <refentrytitle><command>lxc-ps</command></refentrytitle>
> > > - <manvolnum>1</manvolnum>
> > > - </citerefentry>,
> > > -
> > > - <citerefentry>
> > > <refentrytitle><command>lxc-info</command></refentrytitle>
> > > <manvolnum>1</manvolnum>
> > > </citerefentry>,
> > > diff --git a/doc/lxc-netstat.sgml.in b/doc/lxc-netstat.sgml.in
> > > deleted file mode 100644
> > > index b4539d2..0000000
> > > --- a/doc/lxc-netstat.sgml.in
> > > +++ /dev/null
> > > @@ -1,143 +0,0 @@
> > > -<!--
> > > -
> > > -(C) Copyright Canonical Ltd. 2013
> > > -
> > > -Authors:
> > > -Stéphane Graber <stgraber at 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 at 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:
> > > --->
> > > diff --git a/doc/lxc-ps.sgml.in b/doc/lxc-ps.sgml.in
> > > deleted file mode 100644
> > > index 16902a4..0000000
> > > --- a/doc/lxc-ps.sgml.in
> > > +++ /dev/null
> > > @@ -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 at 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:
> > > --->
> > > diff --git a/doc/lxc-version.sgml.in b/doc/lxc-version.sgml.in
> > > deleted file mode 100644
> > > index f3a7b63..0000000
> > > --- a/doc/lxc-version.sgml.in
> > > +++ /dev/null
> > > @@ -1,96 +0,0 @@
> > > -<!--
> > > -
> > > -(C) Copyright Canonical Ltd.
> > > -
> > > -Authors:
> > > -Stéphane Graber <stgraber at 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 at 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:
> > > --->
> > > diff --git a/doc/lxc.sgml.in b/doc/lxc.sgml.in
> > > index 5822fb8..85816ae 100644
> > > --- a/doc/lxc.sgml.in
> > > +++ b/doc/lxc.sgml.in
> > > @@ -457,7 +457,6 @@ rootfs
> > > following commands may be useful:
> > > <programlisting>
> > > lxc-ls
> > > - lxc-ps --name foo
> > > lxc-info -n foo
> > > </programlisting>
> > > </para>
> > > @@ -467,19 +466,6 @@ rootfs
> > > </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>
> > > <command>lxc-info</command> gives information for a specific
> > > container.
> > > </para>
> > > @@ -493,29 +479,6 @@ rootfs
> > > done
> > > </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>
> > >
> > > </refsect2>
> > > diff --git a/doc/see_also.sgml.in b/doc/see_also.sgml.in
> > > index 16530f3..4954e8e 100644
> > > --- a/doc/see_also.sgml.in
> > > +++ b/doc/see_also.sgml.in
> > > @@ -83,11 +83,6 @@ Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
> > > </citerefentry>,
> > >
> > > <citerefentry>
> > > - <refentrytitle><command>lxc-ps</command></refentrytitle>
> > > - <manvolnum>1</manvolnum>
> > > - </citerefentry>,
> > > -
> > > - <citerefentry>
> > > <refentrytitle><command>lxc-info</command></refentrytitle>
> > > <manvolnum>1</manvolnum>
> > > </citerefentry>,
> > > diff --git a/src/lxc/Makefile.am b/src/lxc/Makefile.am
> > > index 25cdf6d..83c0585 100644
> > > --- a/src/lxc/Makefile.am
> > > +++ b/src/lxc/Makefile.am
> > > @@ -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)
> > > #endif
> > >
> > > -bin_SCRIPTS = \
> > > - lxc-ps \
> > > - lxc-netstat \
> > > - lxc-checkconfig \
> > > - lxc-version
> > > +bin_SCRIPTS = lxc-checkconfig
> > >
> > > EXTRA_DIST = \
> > > lxc-device \
> > > diff --git a/src/lxc/arguments.c b/src/lxc/arguments.c
> > > index aaf9634..e021143 100644
> > > --- a/src/lxc/arguments.c
> > > +++ b/src/lxc/arguments.c
> > > @@ -33,6 +33,7 @@
> > >
> > > #include "arguments.h"
> > > #include "utils.h"
> > > +#include "version.h"
> > >
> > > /*---------------------------------------------------------------------------*/
> > > static int build_shortopts(const struct option *a_options,
> > > @@ -128,6 +129,11 @@ static void print_usage(const struct option longopts[],
> > > exit(0);
> > > }
> > >
> > > +static void print_version() {
> > > + printf("%s\n", LXC_VERSION);
> > > + exit(0);
> > > +}
> > > +
> > > static void print_help(const struct lxc_arguments *args, int code)
> > > {
> > > fprintf(stderr, "\
> > > @@ -140,6 +146,7 @@ Common options :\n\
> > > -P, --lxcpath=PATH Use specified container path\n\
> > > -?, --help Give this help list\n\
> > > --usage Give a short usage message\n\
> > > + --version Print the version number\n\
> > > \n\
> > > Mandatory or optional arguments to long options are also mandatory or optional\n\
> > > for any corresponding short options.\n\
> > > @@ -203,6 +210,7 @@ extern int lxc_arguments_parse(struct lxc_arguments *args,
> > > return ret;
> > > break;
> > > case OPT_USAGE: print_usage(args->options, args);
> > > + case OPT_VERSION: print_version();
> > > case '?': print_help(args, 1);
> > > case 'h': print_help(args, 0);
> > > default:
> > > diff --git a/src/lxc/arguments.h b/src/lxc/arguments.h
> > > index d99f79b..767bfcf 100644
> > > --- a/src/lxc/arguments.h
> > > +++ b/src/lxc/arguments.h
> > > @@ -105,6 +105,7 @@ struct lxc_arguments {
> > > {"name", required_argument, 0, 'n'}, \
> > > {"help", no_argument, 0, 'h'}, \
> > > {"usage", no_argument, 0, OPT_USAGE}, \
> > > + {"version", no_argument, 0, OPT_VERSION}, \
> > > {"quiet", no_argument, 0, 'q'}, \
> > > {"logfile", required_argument, 0, 'o'}, \
> > > {"logpriority", required_argument, 0, 'l'}, \
> > > @@ -113,6 +114,7 @@ struct lxc_arguments {
> > >
> > > /* option keys for long only options */
> > > #define OPT_USAGE 0x1000
> > > +#define OPT_VERSION OPT_USAGE-1
> > >
> > > extern int lxc_arguments_parse(struct lxc_arguments *args,
> > > int argc, char *const argv[]);
> > > diff --git a/src/lxc/lxc-netstat.in b/src/lxc/lxc-netstat.in
> > > deleted file mode 100644
> > > index 0aecb0c..0000000
> > > --- a/src/lxc/lxc-netstat.in
> > > +++ /dev/null
> > > @@ -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 "$@"
> > > diff --git a/src/lxc/lxc-ps.in b/src/lxc/lxc-ps.in
> > > deleted file mode 100644
> > > index 5c6c175..0000000
> > > --- a/src/lxc/lxc-ps.in
> > > +++ /dev/null
> > > @@ -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
> > > diff --git a/src/lxc/lxc-version.in b/src/lxc/lxc-version.in
> > > deleted file mode 100644
> > > index b6875da..0000000
> > > --- a/src/lxc/lxc-version.in
> > > +++ /dev/null
> > > @@ -1,3 +0,0 @@
> > > -#!/bin/sh
> > > -
> > > -echo "lxc version: @PACKAGE_VERSION@"
> > > --
> > > 1.8.5.3
> > >
> > > _______________________________________________
> > > lxc-devel mailing list
> > > lxc-devel at lists.linuxcontainers.org
> > > http://lists.linuxcontainers.org/listinfo/lxc-devel
> > _______________________________________________
> > lxc-devel mailing list
> > lxc-devel at lists.linuxcontainers.org
> > http://lists.linuxcontainers.org/listinfo/lxc-devel
>
> --
> Stéphane Graber
> Ubuntu developer
> http://www.ubuntu.com
> _______________________________________________
> lxc-devel mailing list
> lxc-devel at lists.linuxcontainers.org
> http://lists.linuxcontainers.org/listinfo/lxc-devel
More information about the lxc-devel
mailing list