huponexit para shells sem login

huponexit para shells sem login

Este é um acompanhamentoOs processos em segundo plano recebem um SIGHUP ao fazer logoff?.

Parece que huponexitsó funciona para shells de login. Como obtenho esse comportamento para shells que não são de login, por exemplo, aqueles que são iniciados na janela do meu terminal?

Enviar HUPpara o bash de onde os processos foram iniciados funciona conforme o esperado, mas huponexitnão funciona.

Responder1

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

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

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

Responder2

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 vai desligartodosprocessos filhos gerados pelo shell incluem netos, bisnetos e assim por diante.

informação relacionada