lxc调用init流程
来源:互联网 发布:mac windows10截图 编辑:程序博客网 时间:2024/06/07 06:55
src\lxc\lxc_start.c
int main(int argc, char *argv[])
{
int err = -1;
struct lxc_conf *conf;
char *const *args;
char *rcfile = NULL;
char *const default_args[] = {
"/sbin/init",
'\0',
};
default_args[0] = "/sbin/init"
if (!my_args.argc)
args = default_args;
args[0] = "/sbin/init"
err = lxc_start(my_args.name, args, conf, my_args.lxcpath);
int lxc_start(const char *name, char *const argv[], struct lxc_conf *conf,
const char *lxcpath)
{ argv[0] = "/sbin/init"
start_arg.argv[0] = "/sbin/init"
struct start_args start_arg = {
.argv = argv,
};
if (lxc_check_inherited(conf, -1))
return -1;
conf->need_utmp_watch = 1;
return __lxc_start(name, conf, &start_ops, &start_arg, lxcpath);
}
int __lxc_start(const char *name, struct lxc_conf *conf,
struct lxc_operations* ops, void *data, const char *lxcpath)
{
handler->data = data;
err = lxc_spawn(handler);
data ->argv[0] = "/sbin/init"
handler->data ->argv[0] = "/sbin/init"
int lxc_spawn(struct lxc_handler *handler)
{
handler->pid = lxc_clone(do_start, handler, handler->clone_flags);
pid_t lxc_clone(int (*fn)(void *), void *arg, int flags)
{
struct clone_arg clone_arg = {
.fn = fn,
.arg = arg,
};
clone_arg.arg-> data ->argv[0] = "/sbin/init"
.fn = do_start
ret = clone(do_clone, stack + stack_size, flags | SIGCHLD, &clone_arg);
static int do_clone(void *arg)
{
struct clone_arg *clone_arg = arg;
return clone_arg->fn(clone_arg->arg);
do_start(arg); arg-> data ->argv[0] = "/sbin/init"
}
static int do_start(void *data) data -> data ->argv[0] = "/sbin/init"
{
struct lxc_handler *handler = data; handler -> data ->argv[0] = "/sbin/init"
/* after this call, we are in error because this
* ops should not return as it execs */
handler->ops->start(handler, handler->data);
static int execute_start(struct lxc_handler *handler, void* data) data ->argv[0] = "/sbin/init"
{
int j, i = 0;
struct execute_args *my_args = data; my_args ->argv[0] = "/sbin/init"
execvp(argv[0], argv);
- lxc调用init流程
- opencore Init的调用流程
- lxc-console流程分析
- lxc
- LXC
- LXC
- lxc
- linux 启动流程详解之/init/main.c:init调用/etc/rc.d/rc.sysinit
- Linux启动init流程
- linux启动init流程
- UIView的init调用
- init会调用initWithFrame
- Ubuntu init启动流程分析
- Ubuntu init启动流程分析
- Ubuntu init启动流程分析
- Ubuntu init启动流程分析
- Ubuntu init启动流程分析
- Ubuntu init启动流程分析
- 【性能分析】初探VS2010中的Profile(性能剖析)功能
- 设计模式之一:组合模式
- android-Service和Thread的区别
- ExtJs4 笔记(5) Ext.Button 按钮
- Android 去掉横竖屏切换时的转屏动画
- lxc调用init流程
- 堆和栈的区别
- 正则提取PHP代码里的部分数据
- 在应用程序级别之外使用注册为 allowDefinition='MachineToApplication' 的节是错误的。如果在 IIS 中没有将虚拟目录配置为应用程序,则可能导致此错误
- haskell(26)
- HTML标签初识
- ExtJs4 笔记(6) Ext.MessageBox 消息对话框
- SQL Server Group By 区分大小写
- 创建Java内部类的编译错误处理