[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] Re: [Xen-devel] [RFC] Shutdown event script for xl toolstack
Thanks for your submission; this is coming along but still needs some work. Joseph Glanville writes ("Re: [Xen-devel] [RFC] Shutdown event script for xl toolstack"): > On 31 March 2012 05:08, Joseph Glanville > <joseph.glanville@xxxxxxxxxxxxxx> wrote: > + execvpe(arg0,args,envp); I'm afraid that execvpe doesn't do what you want: it entirely replaces the environment with the one you specify. You need to use putenv or setenv. > + if (xlu_cfg_replace_string (config, "shutdown_event_handler", > + &d_config->shutdown_event_handler, 0)) > + d_config->shutdown_event_handler = NULL; Weren't we going to have one event handler per type of event ? > +{ > + int status; > + useconds_t sleep_time = 10, wait_time = 0; > + pid_t child_pid, wpid; I'm afraid this timeout approach is not correct; you would need something to interrupt the wait, rather than polling like this. I think this is impractical. You should, rather, just not implement a timeout. I would advise against reusing exit statuses 0..6. You should start your new exit statuses at 50 or something. This is because many programs use status 1 to mean "I failed" and you would want to avoid that being misinterpreted. Other exit statuses, and deaths due to signals, should be reported properly as errors using libxl_report_child_exitstatus. > + ret = xl_exec(arg0,argv,envp,timeout); I think calling this function xl_exec is a bit unfortunate. It doesn't just exec; it also forks. > + if (d_config->shutdown_event_handler) > + action = user_shutdown_action(d_config, domid, action, > + > event->u.domain_shutdown.shutdown_reason); Something has linewrapped this. You should keep to within 75-80 lines. Thanks, Ian. _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |