Por que matar um processo é impresso no console

1

Tenho cerca de 100 processos de servidor em execução em segundo plano. Sempre que eu mato, recebo 100 mensagens (uma para cada servidor) que o pid correspondente foi morto.

Por exemplo:

./kill_script.sh: line 196: 1996 Killed         myserver 1
./kill_script.sh: line 196: 1997 Killed         myserver 2

# and so on till myserver 100

Eu não quero que essas mensagens sejam impressas. Na verdade, até algumas horas atrás, eles não estavam sendo impressos. Eu não tenho ideia de por que eles estão sendo impressos agora.

Edit: Se isso importa, eu uso o KILL -9 para matar esses processos. Mas eu também estava fazendo antes.

    
por Sonu Mishra 09.08.2016 / 01:17

1 resposta

2

Ele faz isso (realmente) porque os desenvolvedores do shell decidiram que seria útil. Você pode fazer isso (er):

O código relevante no bash é assim:

              else if (IS_FOREGROUND (job))
                {
#if !defined (DONT_REPORT_SIGPIPE)
                  if (termsig && WIFSIGNALED (s) && termsig != SIGINT)
#else
                  if (termsig && WIFSIGNALED (s) && termsig != SIGINT && termsig != SIGPIPE)
#endif
                    { 
                      fprintf (stderr, "%s", j_strsignal (termsig));

                      if (WIFCORED (s))
                        fprintf (stderr, _(" (core dumped)"));

                      fprintf (stderr, "\n");
                    }
                }

qual ( IS_FOREGROUND ) sugere que você está vendo a mensagem quando não coloca seu script em segundo plano.

    
por 09.08.2016 / 01:22