From e5d3407d8e6862330dac90629f0120def6085828 Mon Sep 17 00:00:00 2001 From: Tomoki Shirasawa Date: Tue, 29 Jul 2014 11:10:11 +0900 Subject: [PATCH] child mcexec don't print signal terminate message --- executer/user/mcexec.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/executer/user/mcexec.c b/executer/user/mcexec.c index 0e24d0fa..e4b8c1cd 100644 --- a/executer/user/mcexec.c +++ b/executer/user/mcexec.c @@ -116,6 +116,7 @@ int main_loop(int fd, int cpu, pthread_mutex_t *lock); static int fd; static char *altroot; static const char rlimit_stack_envname[] = "MCKERNEL_RLIMIT_STACK"; +static int ischild; pid_t gettid(void) { @@ -1106,8 +1107,10 @@ int main_loop(int fd, int cpu, pthread_mutex_t *lock) sig = w.sr.args[0] & 0x7f; term = (w.sr.args[0] & 0xff00) >> 8; if(isatty(2)){ - if(sig) - fprintf(stderr, "Terminate by signal %d\n", sig); + if(sig){ + if(!ischild) + fprintf(stderr, "Terminate by signal %d\n", sig); + } else if(term) __dprintf("Exit status: %d\n", term); } @@ -1163,6 +1166,7 @@ int main_loop(int fd, int cpu, pthread_mutex_t *lock) case 0: { int i; + ischild = 1; /* Reopen device fd */ close(fd); fd = open(dev, O_RDWR);