ペアリングされた端末内またはリンクボタンを介して開始されたペアリングされた端末のすべてのインスタンスに同じPIDがあることがわかりました。
たとえば、私は次のようなものを取得します。
$ wmctrl -lp
<omitted lines that don't matter>
0x03c0001f 1 7411 <hostname> Terminal
0x03c06b9f 1 7411 <hostname> Terminal
0x03c07349 1 7411 <hostname> Terminal
0x03c073f4 1 7411 <hostname> Terminal
0x03c0749f 1 7411 <hostname> Terminal
0x03c0754c 1 7411 <hostname> Terminal
0x03c075f9 1 7411 <hostname> Terminal
0x03c076a6 1 7411 <hostname> Terminal
0x0340000b 1 <pid1> <hostname> xeyes
0x0460000b 1 <pid2> <hostname> xeyes
これは、すべて同じPIDを持つ複数の端末ウィンドウがあることを明らかに示しています。前述のように、プロセスが端末内で開始されるのか、メニューバーのリンクをクリックして開始されるのかは関係ありません。。端末内でバックグラウンドでプロセスを開始するかどうかも重要ではありません。
これにはどのようなルールが適用されますか?または「なぜこれが起こるのですか?」
私の過去の理解は、シェルから始まったすべてのコマンドが一意のPIDを持つことでした。
同じPIDを持つ複数の端末を持つことは少し非現実的ではありませんか?
PID経由で個別に削除することはできません。
編集:カーネルバージョン:3.16.0-4-amd64
答え1
Mate Terminalのすべてのインスタンスは、実際には複数のウィンドウを表示する単一のプロセスなので、同じPIDを持ちます。 Mate Terminalはアプリケーションが設計された方法なので、単一のプロセスで実行されます。このコマンドを実行すると、mate-terminal
既存のプロセスにアクセスして新しいウィンドウを開くように指示されます。
Mate Terminal 1.8.1以降、mate-terminal --disable-factory
新しいプロセスを実行して新しいウィンドウを開くことができます。このオプションではGnomeバージョン3.10から削除されました;Mate開発者がその変更をマージすることにしたかどうかはわかりません。バラよりgnome-terminalの実際のマルチプロセスインスタンスの実行Gnome端末に関する同様の質問です。
答え2
「なぜ」という質問に実際に答えてみてください。
各ウィンドウが別のプロセスによって処理されている場合、あるウィンドウから別のウィンドウにタブをドラッグアンドドロップできず、その目的のために新しいウィンドウを作成するためにタブをデスクトップにドラッグアンドドロップできません。