Saya perhatikan, bahwa semua instance mate-terminal yang saya mulai, baik itu di dalam mate-terminal atau melalui tombol link, memiliki PID yang sama.
Misalnya, saya mendapatkan sesuatu seperti
$ 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
yang dengan jelas menunjukkan bahwa ada beberapa jendela Terminal, semuanya dengan PID yang sama. Sebagaimana dinyatakan di atas, tidak masalah, apakah proses dimulai di dalam terminal atau tidak atau dengan mengeklik tautan bilah menu . Tidak masalah, apakah saya memulai proses di latar belakang di dalam terminal atau tidak.
Apa aturan yang diterapkan di sini, atau “mengapa demikian”?
Dulu pemahaman saya adalah bahwa setiap perintah yang saya mulai di shell akan mendapatkan PID unik.
Bukankah tidak praktis untuk memiliki banyak terminal dengan PID yang sama?
Saya tidak dapat lagi mematikannya satu per satu dengan PID.
Sunting:Versi kernel:3.16.0-4-amd64
Jawaban yang Diterima:
Semua instance Mate Terminal memiliki PID yang sama karena sebenarnya merupakan proses tunggal yang menampilkan banyak jendela. Mate Terminal berjalan dalam satu proses karena begitulah cara aplikasi dirancang. Saat Anda menjalankan perintah mate-terminal
, ia menghubungi proses yang ada dan mengirimkannya instruksi untuk membuka jendela baru.
Pada Mate Terminal 1.8.1, Anda dapat menjalankan mate-terminal --disable-factory
untuk membuka jendela baru dalam proses baru. Hati-hati bahwa opsi ini telah dihapus dari versi Gnome di 3.10; Saya tidak tahu apakah pengembang Mate telah memutuskan untuk menggabungkan perubahan itu. Lihat Menjalankan beberapa instance proses yang sebenarnya dari gnome-terminal untuk pertanyaan serupa tentang Gnome-terminal.