Quoting Dwight Engen (dwight.en...@oracle.com): > pclose returns the exit status from wait, we need to check that to see if > the script itself failed or not. Tested a script that returned 0, 1, and > also one that did a sleep and then was killed by a signal (abnormal > termination). > > Signed-off-by: Dwight Engen <dwight.en...@oracle.com> > --- > src/lxc/conf.c | 7 +++++-- > 1 file changed, 5 insertions(+), 2 deletions(-) > > diff --git a/src/lxc/conf.c b/src/lxc/conf.c > index 6b3f318..07529da 100644 > --- a/src/lxc/conf.c > +++ b/src/lxc/conf.c > @@ -299,6 +299,7 @@ static int run_buffer(char *buffer) > { > FILE *f; > char *output; > + int ret; > > f = popen(buffer, "r"); > if (!f) { > @@ -317,8 +318,10 @@ static int run_buffer(char *buffer) > > free(output); > > - if (pclose(f) == -1) { > - SYSERROR("Script exited on error"); > + ret = pclose(f); > + if (ret < 0 || !WIFEXITED(ret) || WEXITSTATUS(ret) != 0) { > + SYSERROR("Script exited:%snormally with:%d", > + WIFEXITED(ret) ? "" : "ab", WEXITSTATUS(ret));
I don't know pclose all that well... but the manpage says The pclose() function returns -1 if wait4(2) returns an error, or some other error is detected. You're treating it as though it contains the status filled in by wait4 et al. Is that valid? not nack'ing, just not clear on what we can do with ret :) > return -1; > } > > -- > 1.7.12.3 > > > ------------------------------------------------------------------------------ > Precog is a next-generation analytics platform capable of advanced > analytics on semi-structured data. The platform includes APIs for building > apps and a phenomenal toolset for data science. Developers can use > our toolset for easy data analysis & visualization. Get a free account! > http://www2.precog.com/precogplatform/slashdotnewsletter > _______________________________________________ > Lxc-devel mailing list > Lxc-devel@lists.sourceforge.net > https://lists.sourceforge.net/lists/listinfo/lxc-devel ------------------------------------------------------------------------------ Precog is a next-generation analytics platform capable of advanced analytics on semi-structured data. The platform includes APIs for building apps and a phenomenal toolset for data science. Developers can use our toolset for easy data analysis & visualization. Get a free account! http://www2.precog.com/precogplatform/slashdotnewsletter _______________________________________________ Lxc-devel mailing list Lxc-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/lxc-devel