Não, isso não é possível:
Normalmente, quando você inicia um programa em segundo plano usando &
, o shell libera o controle sobre ele, e ele não será finalizado quando o shell sair. Isso é verdadeiro mesmo se você não usar a opção -x
para bash
.
Shells interativos são a exceção a esta regra: eles podem fazer algo chamado “job control” para monitorar os processos-filhos que eles iniciaram e terminá-los quando o shell interativo / login sair. (Isso também é configurável; é possível deixar os processos em segundo plano em execução e esse é, na verdade, o comportamento padrão da maioria dos processos.)
Você pode contornar isso de várias formas, mas apenas para finalizar o emacs quando o script foo.foo
sair, não quando o shell que o chama sair - isso ocorre porque chamar bash -x
executa outro (sub) shell, e o interativo shell pai não "sabe" sobre os filhos do subshell.