
状況
ユーザーが複数のエンドポイントからログインして を使用できる環境をセットアップしましたtmux
。...そのため、作業を終了すると、ターミナル マルチプレクサに保持されているプロセスを強制終了しない ssh セッションからログアウトするか、またはscreen
を実行してすべてのプロセスを強制終了することができます。そのために、 というスクリプト内に 関数をラップします。pkill -u ${USER}
killall -u ${USER}
fulllogout
問題
pkill -u ${USER}
またはを実行している場合killall -u ${USER}
、強制終了したプロセスは、他のすべてのプロセスを強制終了する前に、そのプロセス自体またはそのシェルを強制終了することができ、その結果、一部のプロセスが存続したままになります。
昇格した権限を許可せずにこれを正常に実行するにはどうすればよいですか?
答え1
kill -TERM -1
権限を持つすべてのプロセス (pid 1 を除く) に SIGTERM を送信し、同様にkill -KILL -1
可能な限りすべてを強制終了します。これは単一のシステム コールで実行されるため、途中で自分自身を強制終了することはできません。