Estou tentando construir um contêiner de processo. O contêiner acionará outros programas. Por exemplo - um script bash que inicia tarefas em segundo plano em execução com o uso de '&'.
A característica importante que procuro é a seguinte: quando eu matar o contêiner, tudo o que foi gerado por ele deve ser morto. Não apenas filhos diretos, mas também seus descendentes.
Quando iniciei este projeto, acreditei erroneamente que quando você matava um processo, os filhos também eram automaticamente mortos. Procurei conselhos de pessoas que tiveram a mesma ideia incorreta. Embora seja possível captar um sinal e transmitir a morte para as crianças, não é isso que estou procurando aqui.
Eu acredito no que eu quero que seja possível, porque quando você fecha um xterm, qualquer coisa que esteja sendo executada nele é morta, a menos que não tenha sido copiada. Isso inclui processos órfãos. É isso que estou procurando recriar.
Eu tenho uma idéia de que o que eu estou procurando envolve sessões unix.
Se houvesse uma maneira confiável de identificar todos os descendentes de um processo, seria útil poder enviar a eles também sinais arbitrários. por exemplo, SIGUSR1.
SIGHUP
para os processos filhos diretos. O manipulador padrão do sinal de desligamento interrompe a execução do processo, portanto a rota padrão é matar todos os descendentes. Leia mais sobre processos e grupos de processos.