mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-08-16 07:02:02 +00:00
add long options step3
add the long options to remaining lxc_*.c files that do not impact the struct lxc_arguments Signed-off-by: Michel Normand <normand@fr.ibm.com> Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
This commit is contained in:
parent
9618063c87
commit
4237c6ca1f
@ -27,70 +27,68 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
#include <lxc/lxc.h>
|
#include <lxc/lxc.h>
|
||||||
|
#include "arguments.h"
|
||||||
|
|
||||||
lxc_log_define(lxc_cgroup, lxc);
|
lxc_log_define(lxc_cgroup, lxc);
|
||||||
|
|
||||||
void usage(char *cmd)
|
static int my_checker(const struct lxc_arguments* args)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "%s <subsystem> [value]\n", basename(cmd));
|
if (!args->argc) {
|
||||||
fprintf(stderr, "\t -n <name> : name of the container\n");
|
lxc_error(args, "missing cgroup subsystem");
|
||||||
fprintf(stderr, "\t[-o <logfile>] : path of the log file\n");
|
return -1;
|
||||||
fprintf(stderr, "\t[-l <logpriority>]: log level priority\n");
|
}
|
||||||
fprintf(stderr, "\t[-q ] : be quiet\n");
|
return 0;
|
||||||
_exit(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const struct option my_longopts[] = {
|
||||||
|
LXC_COMMON_OPTIONS
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct lxc_arguments my_args = {
|
||||||
|
.progname = "lxc-cgroup",
|
||||||
|
.help = "\
|
||||||
|
--name=NAME subsystem [value]\n\
|
||||||
|
\n\
|
||||||
|
lxc-cgroup get or set subsystem value of cgroup\n\
|
||||||
|
associated with the NAME container\n\
|
||||||
|
\n\
|
||||||
|
Options :\n\
|
||||||
|
-n, --name=NAME NAME for name of the container",
|
||||||
|
.options = my_longopts,
|
||||||
|
.parser = NULL,
|
||||||
|
.checker = my_checker,
|
||||||
|
};
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
int opt;
|
int ret;
|
||||||
char *name = NULL, *subsystem = NULL, *value = NULL;
|
char *subsystem = NULL, *value = NULL;
|
||||||
const char *log_file = NULL, *log_priority = NULL;
|
|
||||||
int nbargs = 0;
|
|
||||||
int quiet = 0;
|
|
||||||
|
|
||||||
while ((opt = getopt(argc, argv, "n:o:l:")) != -1) {
|
ret = lxc_arguments_parse(&my_args, argc, argv);
|
||||||
switch (opt) {
|
if (ret)
|
||||||
case 'n':
|
|
||||||
name = optarg;
|
|
||||||
break;
|
|
||||||
case 'o':
|
|
||||||
log_file = optarg;
|
|
||||||
break;
|
|
||||||
case 'l':
|
|
||||||
log_priority = optarg;
|
|
||||||
break;
|
|
||||||
case 'q':
|
|
||||||
quiet = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
nbargs++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!name || (argc-optind) < 1)
|
|
||||||
usage(argv[0]);
|
|
||||||
|
|
||||||
if (lxc_log_init(log_file, log_priority, basename(argv[0]), quiet))
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if ((argc -optind) >= 1)
|
if (lxc_log_init(my_args.log_file, my_args.log_priority,
|
||||||
subsystem = argv[optind];
|
my_args.progname, my_args.quiet))
|
||||||
|
return 1;
|
||||||
|
|
||||||
if ((argc -optind) >= 2)
|
subsystem = my_args.argv[0];
|
||||||
value = argv[optind+1];
|
|
||||||
|
if ((argc) > 1)
|
||||||
|
value = my_args.argv[1];
|
||||||
|
|
||||||
if (value) {
|
if (value) {
|
||||||
if (lxc_cgroup_set(name, subsystem, value)) {
|
if (lxc_cgroup_set(my_args.name, subsystem, value)) {
|
||||||
ERROR("failed to assign '%s' value to '%s' for '%s'\n",
|
ERROR("failed to assign '%s' value to '%s' for '%s'",
|
||||||
value, subsystem, name);
|
value, subsystem, my_args.name);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
const unsigned long len = 4096;
|
const unsigned long len = 4096;
|
||||||
char buffer[len];
|
char buffer[len];
|
||||||
if (lxc_cgroup_get(name, subsystem, buffer, len)) {
|
if (lxc_cgroup_get(my_args.name, subsystem, buffer, len)) {
|
||||||
ERROR("failed to retrieve value of '%s' for '%s'\n",
|
ERROR("failed to retrieve value of '%s' for '%s'",
|
||||||
subsystem, name);
|
subsystem, my_args.name);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -33,60 +33,57 @@
|
|||||||
|
|
||||||
#include <lxc/lxc.h>
|
#include <lxc/lxc.h>
|
||||||
#include "confile.h"
|
#include "confile.h"
|
||||||
|
#include "arguments.h"
|
||||||
|
|
||||||
void usage(char *cmd)
|
static int my_parser(struct lxc_arguments* args, int c, char* arg)
|
||||||
{
|
{
|
||||||
fprintf(stderr, "%s <command>\n", basename(cmd));
|
switch (c) {
|
||||||
fprintf(stderr, "\t -n <name> : name of the container\n");
|
case 'f': args->rcfile = arg; break;
|
||||||
fprintf(stderr, "\t -f <confile> : path of the configuration file\n");
|
}
|
||||||
fprintf(stderr, "\t[-o <logfile>] : path of the log file\n");
|
return 0;
|
||||||
fprintf(stderr, "\t[-l <logpriority>]: log level priority\n");
|
|
||||||
fprintf(stderr, "\t[-q ] : be quiet\n");
|
|
||||||
_exit(1);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const struct option my_longopts[] = {
|
||||||
|
{"rcfile", required_argument, 0, 'f'},
|
||||||
|
LXC_COMMON_OPTIONS
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct lxc_arguments my_args = {
|
||||||
|
.progname = "lxc-create",
|
||||||
|
.help = "\
|
||||||
|
--name=NAME\n\
|
||||||
|
\n\
|
||||||
|
lxc-create creates a container with the identifier NAME\n\
|
||||||
|
\n\
|
||||||
|
Options :\n\
|
||||||
|
-n, --name=NAME NAME for name of the container\n\
|
||||||
|
-f, --rcfile=FILE Load configuration file FILE\n",
|
||||||
|
.options = my_longopts,
|
||||||
|
.parser = my_parser,
|
||||||
|
.checker = NULL,
|
||||||
|
};
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
const char *name = NULL, *file = NULL;
|
|
||||||
const char *log_file = NULL, *log_priority = NULL;
|
|
||||||
struct lxc_conf lxc_conf;
|
struct lxc_conf lxc_conf;
|
||||||
int err, opt;
|
int ret;
|
||||||
int quiet = 0;
|
|
||||||
|
|
||||||
while ((opt = getopt(argc, argv, "f:n:o:l:q")) != -1) {
|
ret = lxc_arguments_parse(&my_args, argc, argv);
|
||||||
switch (opt) {
|
if (ret)
|
||||||
case 'n':
|
return 1;
|
||||||
name = optarg;
|
|
||||||
break;
|
|
||||||
case 'f':
|
|
||||||
file = optarg;
|
|
||||||
break;
|
|
||||||
case 'o':
|
|
||||||
log_file = optarg;
|
|
||||||
break;
|
|
||||||
case 'l':
|
|
||||||
log_priority = optarg;
|
|
||||||
break;
|
|
||||||
case 'q':
|
|
||||||
quiet = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!name)
|
if (lxc_log_init(my_args.log_file, my_args.log_priority,
|
||||||
usage(argv[0]);
|
my_args.progname, my_args.quiet))
|
||||||
|
|
||||||
if (lxc_log_init(log_file, log_priority, basename(argv[0]), quiet))
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (lxc_conf_init(&lxc_conf))
|
if (lxc_conf_init(&lxc_conf))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (file && lxc_config_read(file, &lxc_conf))
|
if (my_args.rcfile && lxc_config_read(my_args.rcfile, &lxc_conf))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
err = lxc_create(name, &lxc_conf);
|
ret = lxc_create(my_args.name, &lxc_conf);
|
||||||
if (err)
|
if (ret)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -26,53 +26,40 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
#include <lxc/lxc.h>
|
#include <lxc/lxc.h>
|
||||||
|
#include "arguments.h"
|
||||||
|
|
||||||
void usage(char *cmd)
|
static const struct option my_longopts[] = {
|
||||||
{
|
LXC_COMMON_OPTIONS
|
||||||
fprintf(stderr, "%s <command>\n", basename(cmd));
|
};
|
||||||
fprintf(stderr, "\t -n <name> : name of the container\n");
|
|
||||||
fprintf(stderr, "\t[-o <logfile>] : path of the log file\n");
|
static struct lxc_arguments my_args = {
|
||||||
fprintf(stderr, "\t[-l <logpriority>]: log level priority\n");
|
.progname = "lxc-destroy",
|
||||||
fprintf(stderr, "\t[-q ] : be quiet\n");
|
.help = "\
|
||||||
_exit(1);
|
--name=NAME\n\
|
||||||
}
|
\n\
|
||||||
|
lxc-destroy destroy a container with the identifier NAME\n\
|
||||||
|
\n\
|
||||||
|
Options :\n\
|
||||||
|
-n, --name=NAME NAME for name of the container\n",
|
||||||
|
.options = my_longopts,
|
||||||
|
.parser = NULL,
|
||||||
|
.checker = NULL,
|
||||||
|
};
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
char *name = NULL;
|
int ret;
|
||||||
const char *log_file = NULL, *log_priority = NULL;
|
|
||||||
int opt;
|
|
||||||
int nbargs = 0;
|
|
||||||
int err;
|
|
||||||
int quiet = 0;
|
|
||||||
|
|
||||||
while ((opt = getopt(argc, argv, "n:o:l:")) != -1) {
|
ret = lxc_arguments_parse(&my_args, argc, argv);
|
||||||
switch (opt) {
|
if (ret)
|
||||||
case 'n':
|
|
||||||
name = optarg;
|
|
||||||
break;
|
|
||||||
case 'o':
|
|
||||||
log_file = optarg;
|
|
||||||
break;
|
|
||||||
case 'l':
|
|
||||||
log_priority = optarg;
|
|
||||||
break;
|
|
||||||
case 'q':
|
|
||||||
quiet = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
nbargs++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!name)
|
|
||||||
usage(argv[0]);
|
|
||||||
|
|
||||||
if (lxc_log_init(log_file, log_priority, basename(argv[0]), quiet))
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
err = lxc_destroy(name);
|
if (lxc_log_init(my_args.log_file, my_args.log_priority,
|
||||||
if (err)
|
my_args.progname, my_args.quiet))
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
ret = lxc_destroy(my_args.name);
|
||||||
|
if (ret)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -27,51 +27,39 @@
|
|||||||
#include <string.h>
|
#include <string.h>
|
||||||
|
|
||||||
#include <lxc/lxc.h>
|
#include <lxc/lxc.h>
|
||||||
|
#include "arguments.h"
|
||||||
|
|
||||||
void usage(char *cmd)
|
static const struct option my_longopts[] = {
|
||||||
{
|
LXC_COMMON_OPTIONS
|
||||||
fprintf(stderr, "%s <command>\n", basename(cmd));
|
};
|
||||||
fprintf(stderr, "\t -n <name> : name of the container\n");
|
|
||||||
fprintf(stderr, "\t[-o <logfile>] : path of the log file\n");
|
static struct lxc_arguments my_args = {
|
||||||
fprintf(stderr, "\t[-l <logpriority>]: log level priority\n");
|
.progname = "lxc-freeze",
|
||||||
fprintf(stderr, "\t[-q ] : be quiet\n");
|
.help = "\
|
||||||
_exit(1);
|
--name=NAME\n\
|
||||||
}
|
\n\
|
||||||
|
lxc-freeze freezes a container with the identifier NAME\n\
|
||||||
|
\n\
|
||||||
|
Options :\n\
|
||||||
|
-n, --name=NAME NAME for name of the container",
|
||||||
|
.options = my_longopts,
|
||||||
|
.parser = NULL,
|
||||||
|
.checker = NULL,
|
||||||
|
};
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
char *name = NULL;
|
int ret;
|
||||||
const char *log_file = NULL, *log_priority = NULL;
|
|
||||||
int opt;
|
|
||||||
int nbargs = 0;
|
|
||||||
int quiet = 0;
|
|
||||||
|
|
||||||
while ((opt = getopt(argc, argv, "n:o:l:")) != -1) {
|
ret = lxc_arguments_parse(&my_args, argc, argv);
|
||||||
switch (opt) {
|
if (ret)
|
||||||
case 'n':
|
|
||||||
name = optarg;
|
|
||||||
break;
|
|
||||||
case 'o':
|
|
||||||
log_file = optarg;
|
|
||||||
break;
|
|
||||||
case 'l':
|
|
||||||
log_priority = optarg;
|
|
||||||
break;
|
|
||||||
case 'q':
|
|
||||||
quiet = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
nbargs++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!name)
|
|
||||||
usage(argv[0]);
|
|
||||||
|
|
||||||
if (lxc_log_init(log_file, log_priority, basename(argv[0]), quiet))
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (lxc_freeze(name))
|
if (lxc_log_init(my_args.log_file, my_args.log_priority,
|
||||||
|
my_args.progname, my_args.quiet))
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
if (lxc_freeze(my_args.name))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -26,55 +26,43 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
#include <lxc/lxc.h>
|
#include <lxc/lxc.h>
|
||||||
|
#include "arguments.h"
|
||||||
|
|
||||||
void usage(char *cmd)
|
static const struct option my_longopts[] = {
|
||||||
{
|
LXC_COMMON_OPTIONS
|
||||||
fprintf(stderr, "%s <command>\n", basename(cmd));
|
};
|
||||||
fprintf(stderr, "\t -n <name> : name of the container\n");
|
|
||||||
fprintf(stderr, "\t[-o <logfile>] : path of the log file\n");
|
static struct lxc_arguments my_args = {
|
||||||
fprintf(stderr, "\t[-l <logpriority>]: log level priority\n");
|
.progname = "lxc-info",
|
||||||
fprintf(stderr, "\t[-q ] : be quiet\n");
|
.help = "\
|
||||||
_exit(1);
|
--name=NAME\n\
|
||||||
}
|
\n\
|
||||||
|
lxc-info display the state of a container with the identifier NAME\n\
|
||||||
|
\n\
|
||||||
|
Options :\n\
|
||||||
|
-n, --name=NAME NAME for name of the container\n",
|
||||||
|
.options = my_longopts,
|
||||||
|
.parser = NULL,
|
||||||
|
.checker = NULL,
|
||||||
|
};
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
char *name = NULL;
|
int ret, state;
|
||||||
const char *log_file = NULL, *log_priority = NULL;
|
|
||||||
int opt, state, nbargs = 0;
|
|
||||||
int quiet = 0;
|
|
||||||
|
|
||||||
while ((opt = getopt(argc, argv, "n:o:l:")) != -1) {
|
ret = lxc_arguments_parse(&my_args, argc, argv);
|
||||||
switch (opt) {
|
if (ret)
|
||||||
case 'n':
|
|
||||||
name = optarg;
|
|
||||||
break;
|
|
||||||
case 'o':
|
|
||||||
log_file = optarg;
|
|
||||||
break;
|
|
||||||
case 'l':
|
|
||||||
log_priority = optarg;
|
|
||||||
break;
|
|
||||||
case 'q':
|
|
||||||
quiet = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
nbargs++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!name)
|
|
||||||
usage(argv[0]);
|
|
||||||
|
|
||||||
if (lxc_log_init(log_file, log_priority, basename(argv[0]), quiet))
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
state = lxc_getstate(name);
|
if (lxc_log_init(my_args.log_file, my_args.log_priority,
|
||||||
|
my_args.progname, my_args.quiet))
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
state = lxc_getstate(my_args.name);
|
||||||
if (state < 0)
|
if (state < 0)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
printf("'%s' is %s\n", name, lxc_state2str(state));
|
printf("'%s' is %s\n", my_args.name, lxc_state2str(state));
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -28,57 +28,49 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
#include <lxc/lxc.h>
|
#include <lxc/lxc.h>
|
||||||
|
#include "arguments.h"
|
||||||
|
|
||||||
lxc_log_define(monitor, lxc);
|
lxc_log_define(monitor, lxc);
|
||||||
|
|
||||||
void usage(char *cmd)
|
static const struct option my_longopts[] = {
|
||||||
{
|
LXC_COMMON_OPTIONS
|
||||||
fprintf(stderr, "%s <command>\n", basename(cmd));
|
};
|
||||||
fprintf(stderr, "\t -n <name> : name of the container or regular expression\n");
|
|
||||||
fprintf(stderr, "\t[-o <logfile>] : path of the log file\n");
|
static struct lxc_arguments my_args = {
|
||||||
fprintf(stderr, "\t[-l <logpriority>]: log level priority\n");
|
.progname = "lxc-monitor",
|
||||||
fprintf(stderr, "\t[-q ] : be quiet\n");
|
.help = "\
|
||||||
_exit(1);
|
--name=NAME\n\
|
||||||
}
|
\n\
|
||||||
|
lxc-monitor monitors the state of the NAME container\n\
|
||||||
|
\n\
|
||||||
|
Options :\n\
|
||||||
|
-n, --name=NAME NAME for name of the container\n\
|
||||||
|
NAME may be a regular expression",
|
||||||
|
.options = my_longopts,
|
||||||
|
.parser = NULL,
|
||||||
|
.checker = NULL,
|
||||||
|
};
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
char *name = NULL;
|
|
||||||
const char *log_file = NULL, *log_priority = NULL;
|
|
||||||
char *regexp;
|
char *regexp;
|
||||||
struct lxc_msg msg;
|
struct lxc_msg msg;
|
||||||
regex_t preg;
|
regex_t preg;
|
||||||
int fd, opt;
|
int fd, ret;
|
||||||
int quiet = 0;
|
|
||||||
|
|
||||||
while ((opt = getopt(argc, argv, "n:o:l:q")) != -1) {
|
ret = lxc_arguments_parse(&my_args, argc, argv);
|
||||||
switch (opt) {
|
if (ret)
|
||||||
case 'n':
|
|
||||||
name = optarg;
|
|
||||||
break;
|
|
||||||
case 'o':
|
|
||||||
log_file = optarg;
|
|
||||||
break;
|
|
||||||
case 'l':
|
|
||||||
log_priority = optarg;
|
|
||||||
break;
|
|
||||||
case 'q':
|
|
||||||
quiet = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!name)
|
|
||||||
usage(argv[0]);
|
|
||||||
|
|
||||||
if (lxc_log_init(log_file, log_priority, basename(argv[0]), quiet))
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
regexp = malloc(strlen(name) + 3);
|
if (lxc_log_init(my_args.log_file, my_args.log_priority,
|
||||||
sprintf(regexp, "^%s$", name);
|
my_args.progname, my_args.quiet))
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
regexp = malloc(strlen(my_args.name) + 3);
|
||||||
|
sprintf(regexp, "^%s$", my_args.name);
|
||||||
|
|
||||||
if (regcomp(&preg, regexp, REG_NOSUB|REG_EXTENDED)) {
|
if (regcomp(&preg, regexp, REG_NOSUB|REG_EXTENDED)) {
|
||||||
ERROR("failed to compile the regex '%s'", name);
|
ERROR("failed to compile the regex '%s'", my_args.name);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -26,58 +26,50 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
#include <lxc.h>
|
#include <lxc.h>
|
||||||
|
#include "arguments.h"
|
||||||
|
|
||||||
lxc_log_define(lxc_restart, lxc);
|
static int my_checker(const struct lxc_arguments* args)
|
||||||
|
|
||||||
void usage(char *cmd)
|
|
||||||
{
|
{
|
||||||
fprintf(stderr, "%s <statefile>\n", basename(cmd));
|
if (!args->argc) {
|
||||||
fprintf(stderr, "\t -n <name> : name of the container\n");
|
lxc_error(args, "missing STATEFILE filename !");
|
||||||
fprintf(stderr, "\t[-o <logfile>] : path of the log file\n");
|
return -1;
|
||||||
fprintf(stderr, "\t[-l <logpriority>]: log level priority\n");
|
|
||||||
fprintf(stderr, "\t[-q ] : be quiet\n");
|
|
||||||
_exit(1);
|
|
||||||
}
|
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
|
||||||
{
|
|
||||||
char *name = NULL;
|
|
||||||
const char *log_file = NULL, *log_priority = NULL;
|
|
||||||
int opt, nbargs = 0;
|
|
||||||
int quiet = 0;
|
|
||||||
|
|
||||||
while ((opt = getopt(argc, argv, "n:o:l:")) != -1) {
|
|
||||||
switch (opt) {
|
|
||||||
case 'n':
|
|
||||||
name = optarg;
|
|
||||||
break;
|
|
||||||
case 'o':
|
|
||||||
log_file = optarg;
|
|
||||||
break;
|
|
||||||
case 'l':
|
|
||||||
log_priority = optarg;
|
|
||||||
break;
|
|
||||||
case 'q':
|
|
||||||
quiet = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
nbargs++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!name)
|
|
||||||
usage(argv[0]);
|
|
||||||
|
|
||||||
if (!argv[optind])
|
|
||||||
usage(argv[0]);
|
|
||||||
|
|
||||||
if (lxc_log_init(log_file, log_priority, basename(argv[0]), quiet))
|
|
||||||
return 1;
|
|
||||||
|
|
||||||
if (lxc_restart(name, argv[1], 0)) {
|
|
||||||
ERROR("failed to restart %s", name);
|
|
||||||
return 1;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static const struct option my_longopts[] = {
|
||||||
|
LXC_COMMON_OPTIONS
|
||||||
|
};
|
||||||
|
|
||||||
|
static struct lxc_arguments my_args = {
|
||||||
|
.progname = "lxc-restart",
|
||||||
|
.help = "\
|
||||||
|
--name=NAME STATEFILE\n\
|
||||||
|
\n\
|
||||||
|
lxc-restart restarts from STATEFILE file the NAME container\n\
|
||||||
|
\n\
|
||||||
|
Options :\n\
|
||||||
|
-n, --name=NAME NAME for name of the container\n",
|
||||||
|
.options = my_longopts,
|
||||||
|
.parser = NULL,
|
||||||
|
.checker = my_checker,
|
||||||
|
};
|
||||||
|
|
||||||
|
int main(int argc, char *argv[])
|
||||||
|
{
|
||||||
|
int ret;
|
||||||
|
|
||||||
|
ret = lxc_arguments_parse(&my_args, argc, argv);
|
||||||
|
if (ret)
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
if (lxc_log_init(my_args.log_file, my_args.log_priority,
|
||||||
|
my_args.progname, my_args.quiet))
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
if (lxc_restart(my_args.name, my_args.argv[0], 0))
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
@ -26,51 +26,40 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
#include <lxc/lxc.h>
|
#include <lxc/lxc.h>
|
||||||
|
#include "arguments.h"
|
||||||
|
|
||||||
void usage(char *cmd)
|
static const struct option my_longopts[] = {
|
||||||
{
|
LXC_COMMON_OPTIONS
|
||||||
fprintf(stderr, "%s <command>\n", basename(cmd));
|
};
|
||||||
fprintf(stderr, "\t -n <name> : name of the container\n");
|
|
||||||
fprintf(stderr, "\t[-o <logfile>] : path of the log file\n");
|
static struct lxc_arguments my_args = {
|
||||||
fprintf(stderr, "\t[-l <logpriority>]: log level priority\n");
|
.progname = "lxc-stop",
|
||||||
fprintf(stderr, "\t[-q ] : be quiet\n");
|
.help = "\
|
||||||
_exit(1);
|
--name=NAME\n\
|
||||||
}
|
\n\
|
||||||
|
lxc-stop stops a container with the identifier NAME\n\
|
||||||
|
\n\
|
||||||
|
Options :\n\
|
||||||
|
-n, --name=NAME NAME for name of the container\n",
|
||||||
|
.options = my_longopts,
|
||||||
|
.parser = NULL,
|
||||||
|
.checker = NULL,
|
||||||
|
};
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
char *name = NULL;
|
int ret;
|
||||||
const char *log_file = NULL, *log_priority = NULL;
|
|
||||||
int opt, err, nbargs = 0;
|
|
||||||
int quiet = 0;
|
|
||||||
|
|
||||||
while ((opt = getopt(argc, argv, "n:o:l:q")) != -1) {
|
ret = lxc_arguments_parse(&my_args, argc, argv);
|
||||||
switch (opt) {
|
if (ret)
|
||||||
case 'n':
|
|
||||||
name = optarg;
|
|
||||||
break;
|
|
||||||
case 'o':
|
|
||||||
log_file = optarg;
|
|
||||||
break;
|
|
||||||
case 'l':
|
|
||||||
log_priority = optarg;
|
|
||||||
break;
|
|
||||||
case 'q':
|
|
||||||
quiet = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
nbargs++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!name)
|
|
||||||
usage(argv[0]);
|
|
||||||
|
|
||||||
if (lxc_log_init(log_file, log_priority, basename(argv[0]), quiet))
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
err = lxc_stop(name);
|
if (lxc_log_init(my_args.log_file, my_args.log_priority,
|
||||||
if (err)
|
my_args.progname, my_args.quiet))
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
ret = lxc_stop(my_args.name);
|
||||||
|
if (ret)
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
@ -26,50 +26,39 @@
|
|||||||
#include <sys/types.h>
|
#include <sys/types.h>
|
||||||
|
|
||||||
#include <lxc/lxc.h>
|
#include <lxc/lxc.h>
|
||||||
|
#include "arguments.h"
|
||||||
|
|
||||||
void usage(char *cmd)
|
static const struct option my_longopts[] = {
|
||||||
{
|
LXC_COMMON_OPTIONS
|
||||||
fprintf(stderr, "%s <command>\n", basename(cmd));
|
};
|
||||||
fprintf(stderr, "\t -n <name> : name of the container\n");
|
|
||||||
fprintf(stderr, "\t[-o <logfile>] : path of the log file\n");
|
static struct lxc_arguments my_args = {
|
||||||
fprintf(stderr, "\t[-l <logpriority>]: log level priority\n");
|
.progname = "lxc-unfreeze",
|
||||||
fprintf(stderr, "\t[-q ] : be quiet\n");
|
.help = "\
|
||||||
_exit(1);
|
--name=NAME\n\
|
||||||
}
|
\n\
|
||||||
|
lxc-unfreeze unfreezes a container with the identifier NAME\n\
|
||||||
|
\n\
|
||||||
|
Options :\n\
|
||||||
|
-n, --name=NAME NAME for name of the container\n",
|
||||||
|
.options = my_longopts,
|
||||||
|
.parser = NULL,
|
||||||
|
.checker = NULL,
|
||||||
|
};
|
||||||
|
|
||||||
int main(int argc, char *argv[])
|
int main(int argc, char *argv[])
|
||||||
{
|
{
|
||||||
char *name = NULL;
|
int ret;
|
||||||
const char *log_file = NULL, *log_priority = NULL;
|
|
||||||
int opt, nbargs = 0;
|
|
||||||
int quiet = 0;
|
|
||||||
|
|
||||||
while ((opt = getopt(argc, argv, "n:o:l:")) != -1) {
|
ret = lxc_arguments_parse(&my_args, argc, argv);
|
||||||
switch (opt) {
|
if (ret)
|
||||||
case 'n':
|
|
||||||
name = optarg;
|
|
||||||
break;
|
|
||||||
case 'o':
|
|
||||||
log_file = optarg;
|
|
||||||
break;
|
|
||||||
case 'l':
|
|
||||||
log_priority = optarg;
|
|
||||||
break;
|
|
||||||
case 'q':
|
|
||||||
quiet = 1;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
nbargs++;
|
|
||||||
}
|
|
||||||
|
|
||||||
if (!name)
|
|
||||||
usage(argv[0]);
|
|
||||||
|
|
||||||
if (lxc_log_init(log_file, log_priority, basename(argv[0]), quiet))
|
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
if (lxc_unfreeze(name))
|
if (lxc_log_init(my_args.log_file, my_args.log_priority,
|
||||||
|
my_args.progname, my_args.quiet))
|
||||||
|
return 1;
|
||||||
|
|
||||||
|
if (lxc_unfreeze(my_args.name))
|
||||||
return 1;
|
return 1;
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user