huponexit para não-login shells

2

Este é um acompanhamento para Os processos em segundo plano recebem um SIGHUP quando logar? .

Parece que huponexit só funciona para shells de login. Como obtenho esse comportamento para shells que não são de login? os que são iniciados na minha janela de terminal?

Enviar HUP para o bash de onde os processos foram iniciados funciona como esperado, mas huponexit não.

    
por lxgr 25.11.2011 / 19:23

2 respostas

1

Você pode declarar seu próprio código para ser executado quando o shell sair.

trap 'kill -HUP $(jobs -lp) 2>/dev/null || true' EXIT

(Minha proposta anterior de trap 'kill -HUP $$' EXIT não funciona como 4.2, porque se eu entendi a fonte corretamente, o bash ignora parte de sua limpeza normal, incluindo o HUP reenviado, quando já está processando uma condição de saída.)

    
por 25.11.2011 / 21:21
1
trap 'kill -HUP -$$' exit

Não consigo adicionar um comentário acima. Prefixe um sinal negativo para denotar um grupo de processos. Eu acho que isso irá desligar todos os processos filhos gerados pelo shell, incluir netos, bisnetos e assim por diante.

    
por 25.12.2011 / 22:28

Tags