Ho notato che tutte le istanze mate-terminal che avvio, sia all'interno di un mate-terminal o tramite un pulsante di collegamento, hanno lo stesso PID.
Ad esempio, ho qualcosa come
$ 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
che mostra chiaramente che ci sono più finestre di Terminale, tutte con lo stesso PID. Come affermato in precedenza, non importava se il processo fosse stato avviato o meno all'interno di un terminale o facendo clic su un collegamento nella barra dei menu . Non importava nemmeno se avessi avviato o meno il processo in background all'interno del terminale.
Qual è la regola applicata qui, o "perché è così"?
La mia comprensione era che ogni comando avviato in una shell avrebbe ottenuto un PID univoco.
Non è un po' poco pratico avere più terminali con lo stesso PID?
Non posso più ucciderli singolarmente tramite PID.
Modifica:versione del kernel:3.16.0-4-amd64
Risposta accettata:
Tutte le istanze di Mate Terminal hanno lo stesso PID perché in realtà sono un unico processo che visualizza più finestre. Mate Terminal viene eseguito in un unico processo perché è così che l'applicazione è progettata. Quando esegui il comando mate-terminal
, contatta il processo esistente e gli invia un'istruzione per aprire una nuova finestra.
A partire da Mate Terminal 1.8.1, puoi eseguire mate-terminal --disable-factory
per aprire una nuova finestra in un nuovo processo. Attenzione che questa opzione è stata rimossa dalla versione di Gnome in 3.10; Non so se gli sviluppatori di Mate abbiano deciso di unire quella modifica. Consulta Esegui vere istanze di processo multiple di gnome-terminal per una domanda simile relativa a Gnome-terminal.