diff options
| author | Mattias Andrée <maandree@operamail.com> | 2014-06-09 02:08:50 +0200 | 
|---|---|---|
| committer | Mattias Andrée <maandree@operamail.com> | 2014-06-09 02:08:50 +0200 | 
| commit | 31ed5dc6b1a23f645fd9cc14c0df1642471d1aa2 (patch) | |
| tree | a992fbef05cc44f626fa3a2366c7f2abeeca7ec4 /src | |
| parent | use readline in dumb-client (diff) | |
| download | mds-31ed5dc6b1a23f645fd9cc14c0df1642471d1aa2.tar.gz mds-31ed5dc6b1a23f645fd9cc14c0df1642471d1aa2.tar.bz2 mds-31ed5dc6b1a23f645fd9cc14c0df1642471d1aa2.tar.xz | |
put process names in quotes and print exit status and termination signal on crashed processes
Signed-off-by: Mattias Andrée <maandree@operamail.com>
Diffstat (limited to 'src')
| -rw-r--r-- | src/mds-respawn.c | 15 | 
1 files changed, 10 insertions, 5 deletions
| diff --git a/src/mds-respawn.c b/src/mds-respawn.c index 84c4b26..23c07e6 100644 --- a/src/mds-respawn.c +++ b/src/mds-respawn.c @@ -419,7 +419,7 @@ static void joined_with_server(pid_t pid, int status)    if (states[i].state == CREMATED)      { -      eprintf("cremated child process %s exited, ignoring.", commands[i][0]); +      eprintf("cremated child process `%s' exited, ignoring.", commands[i][0]);        return;      } @@ -430,27 +430,32 @@ static void joined_with_server(pid_t pid, int status)    if (WIFEXITED(status) ? (WEXITSTATUS(status) == 0) :        ((WTERMSIG(status) == SIGTERM) || (WTERMSIG(status) == SIGINT)))      { -      eprintf("child process %s exited normally, cremating.", commands[i][0]); +      eprintf("child process `%s' exited normally, cremating.", commands[i][0]);        states[i].state = CREMATED;        return;      } +  if (WIFEXITED(status)) +    eprintf("`%s' exited with code %i.", commands[i][0], WEXITSTATUS(status)); +  else +    eprintf("`%s' died by signal %i.", commands[i][0], WTERMSIG(status)); +      if (monotone(&ended) < 0)      {        perror(*argv); -      eprintf("%s died abnormally, burying because we could not read the time.", commands[i][0]); +      eprintf("`%s' died abnormally, burying because we could not read the time.", commands[i][0]);        states[i].state = DEAD_AND_BURIED;        return;      }    if (ended.tv_sec - states[i].started.tv_sec < interval)      { -      eprintf("%s died abnormally, burying because it died too fast.", commands[i][0]); +      eprintf("`%s' died abnormally, burying because it died too fast.", commands[i][0]);        states[i].state = DEAD_AND_BURIED;        return;      } -  eprintf("%s died abnormally, respawning.", commands[i][0]); +  eprintf("`%s' died abnormally, respawning.", commands[i][0]);    spawn_server(i);  } | 
