From: Daniel Lezcano Date: Thu, 11 Aug 2011 15:19:56 +0000 (+0200) Subject: add container init pid with the lxc-info command X-Git-Tag: lxc-0.7.5~4 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=5d42011acbf64b3c942dd4e2f2557a172410fbeb;p=thirdparty%2Flxc.git add container init pid with the lxc-info command Signed-off-by: Daniel Lezcano --- diff --git a/src/lxc/lxc_info.c b/src/lxc/lxc_info.c index 4facbf29e..74b6b590b 100644 --- a/src/lxc/lxc_info.c +++ b/src/lxc/lxc_info.c @@ -21,17 +21,32 @@ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA */ #include +#include #include #include #include #include #include - +#include #include "arguments.h" +static bool state; +static bool pid; + +static int my_parser(struct lxc_arguments* args, int c, char* arg) +{ + switch (c) { + case 's': state = true; break; + case 'p': pid = true; break; + } + return 0; +} + static const struct option my_longopts[] = { - LXC_COMMON_OPTIONS + {"state", no_argument, 0, 's'}, + {"pid", no_argument, 0, 'p'}, + LXC_COMMON_OPTIONS, }; static struct lxc_arguments my_args = { @@ -39,18 +54,20 @@ static struct lxc_arguments my_args = { .help = "\ --name=NAME\n\ \n\ -lxc-info display the state of a container with the identifier NAME\n\ +lxc-info display some information about a container with the identifier NAME\n\ \n\ Options :\n\ - -n, --name=NAME NAME for name of the container\n", + -n, --name=NAME NAME for name of the container\n\ + -s, --state shows the state of the container\n\ + -p, --pid shows the process id of the init container\n", .options = my_longopts, - .parser = NULL, + .parser = my_parser, .checker = NULL, }; int main(int argc, char *argv[]) { - int ret, state; + int ret; ret = lxc_arguments_parse(&my_args, argc, argv); if (ret) @@ -60,11 +77,19 @@ int main(int argc, char *argv[]) my_args.progname, my_args.quiet)) return 1; - state = lxc_getstate(my_args.name); - if (state < 0) - return 1; + if (!state && !pid) + state = pid = true; + + if (state) { + ret = lxc_getstate(my_args.name); + if (ret < 0) + return 1; + + printf("state:%10s\n", lxc_state2str(ret)); + } - printf("'%s' is %s\n", my_args.name, lxc_state2str(state)); + if (pid) + printf("pid:%10d\n", get_init_pid(my_args.name)); return 0; }