Sair do Mac Terminal não fecha o script executado com sudo

Sair do Mac Terminal não fecha o script executado com sudo

Eu tenho um script bash chamado testingsalvo em /usr/local/bin.

Em uma janela do Terminal no macOS eu executo o arquivo sudo testing. Em uma segunda janela do terminal, gero uma lista de processos:

ps -axo tty,pid,ppid,args | { head -1; grep "bash\|testing" | grep -v grep; }

Que retorna conforme o esperado:

TTY        PID  PPID ARGS
ttys000  73674 73673 -bash                              # login shell used to run sudo
ttys000  73701 73674 sudo testing                       # sudo process
ttys000  73702 73701 /bin/bash /usr/local/bin/testing   # "testing" bash script being run by sudo
ttys001   3714  3713 -bash                              # second login shell used to generate this process list

No entanto, depois de sair da primeira janela do Terminal (enquanto testingainda está em execução), a lista de processos é semelhante a esta:

TTY        PID  PPID ARGS
??       73701     1 sudo testing
??       73702 73701 /bin/bash /usr/local/bin/testing
ttys001   3714  3713 -bash

Como esperado, o primeiro shell de login foi encerrado e o segundo shell de login ainda está em execução. Mas o processo sudo e seu filho bifurcado (agora órfão), o testingscript, ainda estão em execução!

Eu suspeito que isso ocorre porque o usuário, e não o root, é quem fecha a janela do Terminal e, como tal, não tem as permissões necessárias para afetar os processos root. Isso está correto? Sinto que estou faltando algo básico aqui. Existe alguma maneira de permitir que os processos raiz sejam encerrados quando a janela do Terminal for fechada?

informação relacionada