J'ai remarqué que toutes les instances de mate-terminal que je démarre, que ce soit à l'intérieur d'un mate-terminal ou via un bouton de lien, ont le même PID.
Par exemple, j'ai quelque chose comme
$ 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
ce qui montre clairement qu'il existe plusieurs fenêtres Terminal, toutes avec le même PID. Comme indiqué ci-dessus, peu importait que le processus soit démarré ou non dans un terminal ou en cliquant sur un lien de la barre de menu . Peu importait non plus que je lance ou non le processus en arrière-plan dans le terminal.
Quelle est la règle appliquée ici, ou "pourquoi est-ce ainsi" ?
Ma compréhension était que chaque commande que je lance dans un shell obtiendrait un PID unique.
N'est-il pas peu pratique d'avoir plusieurs terminaux avec le même PID ?
Je ne peux plus les tuer individuellement par PID.
Modifier :Version du noyau : 3.16.0-4-amd64
Réponse acceptée :
Toutes les instances de Mate Terminal ont le même PID car il s'agit en fait d'un seul processus qui affiche plusieurs fenêtres. Mate Terminal s'exécute en un seul processus car c'est ainsi que l'application est conçue. Lorsque vous exécutez la commande mate-terminal
, il contacte le processus existant et lui envoie une instruction pour ouvrir une nouvelle fenêtre.
Depuis Mate Terminal 1.8.1, vous pouvez exécuter mate-terminal --disable-factory
pour ouvrir une nouvelle fenêtre dans un nouveau processus. Attention, cette option a été supprimée de la version Gnome en 3.10 ; Je ne sais pas si les développeurs de Mate ont décidé de fusionner ce changement. Voir Run true multiple process instances of gnome-terminal pour une question similaire concernant Gnome-terminal.