Also if the container is not running, return -2. Currently lxc-stop will return 0, so you cannot tell the difference between successfull stopping and noop.
The main point of this is to have our tools using the api as an example to others of how to use it. Signed-off-by: Serge Hallyn <serge.hal...@ubuntu.com> --- src/lxc/lxc_stop.c | 21 ++++++++++++++++++++- 1 file changed, 20 insertions(+), 1 deletion(-) diff --git a/src/lxc/lxc_stop.c b/src/lxc/lxc_stop.c index d7c7283..5e035b0 100644 --- a/src/lxc/lxc_stop.c +++ b/src/lxc/lxc_stop.c @@ -28,6 +28,7 @@ #include <lxc/lxc.h> #include <lxc/log.h> +#include <lxc/lxccontainer.h> #include "arguments.h" #include "utils.h" @@ -51,6 +52,9 @@ Options :\n\ int main(int argc, char *argv[]) { + struct lxc_container *c; + int ret = -1; + if (lxc_arguments_parse(&my_args, argc, argv)) return -1; @@ -58,5 +62,20 @@ int main(int argc, char *argv[]) my_args.progname, my_args.quiet, my_args.lxcpath[0])) return -1; - return lxc_stop(my_args.name, my_args.lxcpath[0]); + c = lxc_container_new(my_args.name, my_args.lxcpath[0]); + if (!c) { + fprintf(stderr, "Error opening container\n"); + goto out; + } + + if (!c->is_running(c)) { + fprintf(stderr, "%s is not running\n", c->name); + ret = -2; + goto out; + } + + ret = c->stop(c) ? 0 : -1; +out: + lxc_container_put(c); + return ret; } -- 1.8.1.2 ------------------------------------------------------------------------------ AlienVault Unified Security Management (USM) platform delivers complete security visibility with the essential security capabilities. Easily and efficiently configure, manage, and operate all of your security controls from a single console and one unified framework. Download a free trial. http://p.sf.net/sfu/alienvault_d2d _______________________________________________ Lxc-devel mailing list Lxc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lxc-devel