私が開始するすべてのメイトターミナルインスタンスは、メイトターミナル内であろうとリンクボタン経由であろうと、同じ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
承認された回答:
Mate Terminalのすべてのインスタンスは、実際には複数のウィンドウを表示する単一のプロセスであるため、同じPIDを持っています。 Mate Terminalは、アプリケーションの設計方法であるため、単一のプロセスで実行されます。コマンドmate-terminal
を実行すると 、既存のプロセスに接続し、新しいウィンドウを開くように指示を送信します。
Mate Terminal 1.8.1以降、mate-terminal --disable-factory
を実行できます。 新しいプロセスで新しいウィンドウを開きます。このオプションは3.10のGnomeバージョンから削除されていることに注意してください。 Mate開発者がその変更をマージすることを決定したかどうかはわかりません。 Gnome-terminalに関する同様の質問については、「gnome-terminalの真の複数プロセスインスタンスを実行する」を参照してください。