Múltiplos processos relatando sinais recebidos

3

Se eu rodar vários programas com program & em um terminal, e depois de outro começar a enviar SIGKILL SIGINT ou qualquer outro sinal, o terminal executando todos os processos me informará qual processo recebeu qual sinal? / p>     

por user75027 02.08.2014 / 18:35

1 resposta

0

O terminal não está ciente dos sinais enviados para tais processos, portanto, não lhe dirá nada. Mas se o seu shell tiver controle de trabalho, ele poderá avisar quando um trabalho em segundo plano for finalizado (por exemplo, devido ao sinal). Por exemplo, com bash e zsh, é necessário definir a opção notify para que você obtenha um relatório imediatamente (em vez de aguardar o próximo prompt).

Você também pode configurar uma interceptação SIGCHLD, que é executada quando um trabalho em segundo plano é finalizado (mas você não poderá obter qualquer informação sobre o trabalho finalizado com o trapping).

Em shells POSIX, você também pode usar wait $pid para obter o status de saída de alguns PID $pid (que lhe dará o sinal, possivelmente com falsos positivos e falsos negativos, dependendo do que o processo faz), com algumas limitações. Consulte a wait specification para obter mais informações.

    
por 03.08.2014 / 00:43

Tags