Salir de Mac Terminal no cierra la ejecución del script con sudo

Salir de Mac Terminal no cierra la ejecución del script con sudo

Tengo un script bash llamado testingguardado dentro de /usr/local/bin.

En una ventana de Terminal en macOS ejecuto sudo testing. En una segunda ventana de terminal, genero una lista de procesos:

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

Que regresa como se esperaba:

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

Sin embargo, después de salir de la primera ventana de Terminal (mientras testingtodavía se está ejecutando dentro de él), la lista de procesos se ve así:

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

Como era de esperar, el primer shell de inicio de sesión finalizó y el segundo shell de inicio de sesión aún se está ejecutando. ¡Pero el proceso sudo y su hijo bifurcado (ahora huérfano), el testingscript, todavía se están ejecutando!

Sospecho que esto se debe a que el usuario, no el root, es quien cierra la ventana de Terminal y, como tal, no tiene los permisos necesarios para afectar los procesos de root. ¿Es esto correcto? Siento que me falta algo básico aquí. ¿Hay alguna forma de permitir que los procesos raíz finalicen cuando se cierra la ventana de Terminal?

información relacionada