Mac ターミナルを終了しても、sudo で実行されたスクリプトは終了しません

Mac ターミナルを終了しても、sudo で実行されたスクリプトは終了しません

という bash スクリプトがtesting内に保存されています/usr/local/bin

macOS のターミナル ウィンドウで を実行しますsudo testing。2 番目のターミナル ウィンドウで、プロセスのリストを生成します。

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

予想どおりに返されます:

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

ただし、最初のターミナルウィンドウ(その間 testingプロセスがまだ実行中の場合、プロセス リストは次のようになります。

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

予想どおり、最初のログイン シェルは終了し、2 番目のログイン シェルはまだ実行中です。ただし、sudo プロセスとそのフォークされた (現在は孤立した) 子であるtestingスクリプトはまだ実行中です。

これは、ターミナル ウィンドウを閉じるのがルートではなくユーザーであり、ルート プロセスに影響を与えるのに必要な権限を持っていないことが原因であると思われます。これは正しいでしょうか? ここで何か基本的なことを見逃しているような気がします。ターミナル ウィンドウが閉じられたときにルート プロセスを終了できるようにする方法はありますか?

関連情報