Is there something new in a recent kernel or something I'm missing?
Não, se um processo sair, seus filhos continuarem sendo executados, o processo pai será alterado para init
(PID 1). Ou algum outro processo dependente do sistema, procure, e. "subagiradores" no Linux.
Esse sempre foi o caso, o que permite que nohup
funcione de maneira útil, bem como o processo antigo de transformar um processo em um daemon, bifurcando duas vezes, chamando setsid()
e saindo dos processos pai.
Fechar uma sessão de terminal pode enviar SIGHUP
para os processos restantes, mas eles estão livres para ignorá-la (e é isso que o nohup
faz). Além disso, systemd
pode ser configurado para matar quaisquer processos remanescentes quando uma sessão de login de terminal termina, mas você provavelmente está executando firefox
dentro de X de um emulador de terminal, de modo que isso não se aplica.