From: Enrico Scholz Date: Fri, 17 Oct 2003 00:45:49 +0000 (+0000) Subject: kill init-pid X-Git-Tag: VERSION_0_10~1219 X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=049cd8e961bcddfcdafa2d756b5ee0c7418180ff;p=util-vserver.git kill init-pid more sanity checks git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@191 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- diff --git a/util-vserver/src/ctx-kill.c b/util-vserver/src/ctx-kill.c index a8209a7..dcf1d37 100644 --- a/util-vserver/src/ctx-kill.c +++ b/util-vserver/src/ctx-kill.c @@ -159,6 +159,7 @@ static void doKillAll(struct ArgInfo const * const args) { size_t i=0; + pid_t init_pid = vc_X_getinitpid(0); signal(SIGSTOP, SIG_IGN); @@ -171,6 +172,9 @@ doKillAll(struct ArgInfo const * const args) next_time += atoi(args->argv[i]); iterateThroughProc(&doKillAllSingle, args, &sig); + if (init_pid!=-1 && init_pid>1 && init_pid!=getpid()) + kill(init_pid, sig); + while (time(0)0) usleep(args->interval * 1000); @@ -224,6 +228,8 @@ childFunc(void *args_v) Emkdir("old/foo",0600); Emount("none", "/proc", "proc", 0, 0); + // TODO: drop additional capabilities? + // TODO: it may be be better for ctx-shutdown to: // * generate ctx with S_CTX_INFO_INIT // * send kill to -1 @@ -321,6 +327,11 @@ int main(int argc, char *argv[]) if (args.type==tpPID) args.ctx = determineContext(args.pid); + + if (args.ctx==0) { + WRITE_MSG(2, "Can not operate in ctx 0\n"); + return EXIT_FAILURE; + } args.argc = argc-optind; args.argv = argv+optind;