From: Christian Brauner Date: Fri, 14 Oct 2016 13:27:24 +0000 (+0200) Subject: tools: better error reporting for lxc-start X-Git-Tag: lxc-2.1.0~297^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F1234%2Fhead;p=thirdparty%2Flxc.git tools: better error reporting for lxc-start Signed-off-by: Christian Brauner --- diff --git a/src/lxc/tools/lxc_start.c b/src/lxc/tools/lxc_start.c index 25d8f194e..eaa8da418 100644 --- a/src/lxc/tools/lxc_start.c +++ b/src/lxc/tools/lxc_start.c @@ -86,7 +86,7 @@ static int ensure_path(char **confpath, const char *path) goto err; } } - err = 0; + err = EXIT_SUCCESS; err: free(fullpath); @@ -231,6 +231,12 @@ int main(int argc, char *argv[]) exit(err); lxc_log_options_no_override(); + if (access(my_args.lxcpath[0], O_RDWR) < 0) { + if (!my_args.quiet) + fprintf(stderr, "You lack access to %s\n", my_args.lxcpath[0]); + exit(err); + } + const char *lxcpath = my_args.lxcpath[0]; /* @@ -275,9 +281,19 @@ int main(int argc, char *argv[]) } } + if (!c->is_defined(c)) { + fprintf(stderr, "Error: container %s is not defined\n", c->name); + goto out; + } + + if (!c->may_control(c)) { + fprintf(stderr, "Insufficent privileges to control %s\n", c->name); + goto out; + } + if (c->is_running(c)) { ERROR("Container is already running."); - err = 0; + err = EXIT_SUCCESS; goto out; } /*