次の簡単なコマンドは私の問題を説明します。
gnome-terminal --tab -t "Tab 1" -e "/bin/bash" --tab -t "Tab 2" -e "/bin/bash"
2つのタブとアクティブなbashシェルを持つ新しいウィンドウが開きます。 GUI [x]を使用してこの新しいウィンドウをすぐに閉じてからコマンドを実行するとps
(この場合)、子プロセス(/bin/bash
)は開いたままになります。
私はこれがある時点で(クリックで)決してアクティブではなかったすべての非アクティブタブに対応することを発見しました。したがって、上記の例と似ていますが、2つではなく5つのタブを持つ新しいコマンドを作成し、コマンドを実行した直後にこのウィンドウを閉じると、4つのサブプロセスは引き続き実行されます。
特別な部分は次のとおりです。各タブをクリックしてアクティブにしてウィンドウを閉じると、期待どおりにすべての子プロセスが終了します。
これはGNOME端末のバグですか?
これらのプロセスが開いている状態ではなく閉じていることをどのように確認できますか?
さらなる調査により、開かれたプロセスの親プロセスIDは、上記のコマンドが実行された端末のPIDであることがわかりました。元のソース端末を終了せずに(アクティブかどうかにかかわらず)、各タブに対応するサブプロセスを終了するのに十分なように、新しく作成されたウィンドウを閉じたいと思います。これが意味があることを願っています。