mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-07-29 16:07:14 +00:00
prepare do_start for restart code
In order to be able to use a single 'start' function for start and restart, let's prepare do_start to get an extra statefile parameter. Signed-off-by: Michel Normand <normand@fr.ibm.com> Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
This commit is contained in:
parent
69ffa31110
commit
fc25b815fd
@ -411,14 +411,7 @@ void lxc_abort(const char *name, struct lxc_handler *handler)
|
|||||||
kill(handler->pid, SIGKILL);
|
kill(handler->pid, SIGKILL);
|
||||||
}
|
}
|
||||||
|
|
||||||
struct start_arg {
|
int do_start(void *arg)
|
||||||
const char *name;
|
|
||||||
char *const *argv;
|
|
||||||
struct lxc_handler *handler;
|
|
||||||
int *sv;
|
|
||||||
};
|
|
||||||
|
|
||||||
static int do_start(void *arg)
|
|
||||||
{
|
{
|
||||||
struct start_arg *start_arg = arg;
|
struct start_arg *start_arg = arg;
|
||||||
struct lxc_handler *handler = start_arg->handler;
|
struct lxc_handler *handler = start_arg->handler;
|
||||||
@ -465,6 +458,8 @@ static int do_start(void *arg)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
close(handler->sigfd);
|
||||||
|
|
||||||
NOTICE("exec'ing '%s'", argv[0]);
|
NOTICE("exec'ing '%s'", argv[0]);
|
||||||
|
|
||||||
execvp(argv[0], argv);
|
execvp(argv[0], argv);
|
||||||
@ -487,6 +482,7 @@ int lxc_spawn(const char *name, struct lxc_handler *handler, char *const argv[])
|
|||||||
struct start_arg start_arg = {
|
struct start_arg start_arg = {
|
||||||
.name = name,
|
.name = name,
|
||||||
.argv = argv,
|
.argv = argv,
|
||||||
|
.sfd = -1,
|
||||||
.handler = handler,
|
.handler = handler,
|
||||||
.sv = sv,
|
.sv = sv,
|
||||||
};
|
};
|
||||||
|
@ -38,6 +38,15 @@ struct lxc_handler {
|
|||||||
struct lxc_conf *conf;
|
struct lxc_conf *conf;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
struct start_arg {
|
||||||
|
const char *name;
|
||||||
|
struct lxc_handler *handler;
|
||||||
|
int *sv;
|
||||||
|
char *const *argv;
|
||||||
|
int sfd;
|
||||||
|
};
|
||||||
|
|
||||||
|
extern int do_start(void *arg);
|
||||||
extern struct lxc_handler *lxc_init(const char *name, struct lxc_conf *);
|
extern struct lxc_handler *lxc_init(const char *name, struct lxc_conf *);
|
||||||
extern int lxc_spawn(const char *name, struct lxc_handler *handler,
|
extern int lxc_spawn(const char *name, struct lxc_handler *handler,
|
||||||
char *const argv[]);
|
char *const argv[]);
|
||||||
|
Loading…
Reference in New Issue
Block a user