From: Enrico Scholz Date: Sat, 8 May 2004 01:28:37 +0000 (+0000) Subject: be more verbose when sending a signal X-Git-Tag: VERSION_0_10~39 X-Git-Url: http://git.linux-vserver.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=73020c0b72818c315eeb5e3d35cb6f3cd9f39d90;p=util-vserver.git be more verbose when sending a signal git-svn-id: http://svn.linux-vserver.org/svn/util-vserver/trunk@1546 94cd875c-1c1d-0410-91d2-eb244daf1a30 --- diff --git a/util-vserver/lib_internal/util-exitlikeprocess.c b/util-vserver/lib_internal/util-exitlikeprocess.c index 9aa80c4..b5ab179 100644 --- a/util-vserver/lib_internal/util-exitlikeprocess.c +++ b/util-vserver/lib_internal/util-exitlikeprocess.c @@ -20,15 +20,19 @@ # include #endif +#include "util.h" +#include + #include #include #include #include #include #include +#include void -exitLikeProcess(int pid) +exitLikeProcess(int pid, char const *cmd) { int status; @@ -38,6 +42,25 @@ exitLikeProcess(int pid) exit(WEXITSTATUS(status)); if (WIFSIGNALED(status)) { + struct rlimit lim = { 0,0 }; + + if (cmd) { + char buf[sizeof(int)*3 + 2]; + size_t l = utilvserver_fmt_uint(buf, pid); + + WRITE_MSG(2, "command '"); + WRITE_STR(2, cmd); + WRITE_MSG(2, "' (pid "); + write (2, buf, l); + WRITE_MSG(2, ") exited with signal "); + l = utilvserver_fmt_uint(buf, WTERMSIG(status)); + write (2, buf, l); + WRITE_MSG(2, "; following it...\n"); + } + + // prevent coredumps which might override the real ones + setrlimit(RLIMIT_CORE, &lim); + kill(getpid(), WTERMSIG(status)); exit(1); }