Commit 5d42011a by Daniel Lezcano Committed by Daniel Lezcano

add container init pid with the lxc-info command

parent 98945759
......@@ -21,17 +21,32 @@
* Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
*/
#include <stdio.h>
#include <stdbool.h>
#include <unistd.h>
#include <libgen.h>
#include <sys/types.h>
#include <lxc/lxc.h>
#include <lxc/log.h>
#include <commands.h>
#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;
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment