GNOME-terminal'in gerçek çoklu işlem örneklerini çalıştırma


17

Eğer varsa gnome-terminalçalışan ve programın yeni bir örneğini istiyoruz, çalıştırmakta olduğunu düşünebilir gnome-terminal &bir kabuk işi halleder.

Şaşırtıcı bir şekilde, bu yeni örnek bazı tatsız Windows veya Mac programı gibi davranır; yalnızca mevcut gnome-terminalpencereye yeni bir pencere oluşturmak için çalışan bir ileti gönderir . Bu gnome-terminalişlem bozulursa, tüm terminal pencerelerini kaybedersiniz!

(Tabii ki, her pencerenin bağımsız bir süreç olan kendi kabuğu vardır, ancak gerçek terminal emülatörü ve GUI'si uygulamanın tek bir örneğinden yönetilir.)

gnome-terminalHer biri kendi işlemlerinde çalışan bağımsız örnekleri nasıl oluşturabiliriz , böylece bu işlemi öldürmek yalnızca o işlemle ilişkili pencereleri yok eder?


Sen olabilir başarıya sahip gnome-terminal --disable-factory, ancak görünüşe göre witdrawn ediliyor bunun için desteklemek
steeldriver

@steeldriver Çalışıyor gibi görünüyor; cevap vermek ister misiniz? Desteğin geri çekilmesiyle ilgilenmiyorum. Bunu bulmak neden bu kadar zor? Dokümantasyonunda --disable-factory"yeni bir işlemde (veya adres alanında) başlat; varolan örneği yeniden kullanma" gibi standart bir terminoloji kullanılmadığından.
Kaz


2
Bu projeleri yürüten insanların böylesine berbat kararlar vermeye devam ettiğine inanamıyorum. Hiçbir şey öğrenmedik mi? Kim kilobayt RAM ayırmayı umursar? Terminallerin birbirlerini kilitlemesini önlemek 1 numaralı öncelik olmalıdır. Geri rxvtsanırım.
Tobia

Aslında, rxvtgerçek bir çoklu işlem terminali isteyen herkese tavsiye edebilirim . Truetype yazı tipi desteği, uzun çizgilerin yeniden sarılması ve modern terminallerin diğer birçok özelliğine sahiptir.
Tobia

Yanıtlar:


9

Buna göre man gnome-terminal, aradığınız seçenek kafa karıştırıcı bir şekilde adlandırılmış gibi görünüyor

   --disable-factory
             Do not register with the activation name server, do 
             not re-use an active terminal.

Ancak, seçenek daha yeni sürümlerde kaldırılmıştır, bu nedenle güvenilmemelidir.


Harika çalışıyor. İğne uçları bu özelliği kaldırınca artık umursamıyorum. Ben ondan fazla terminal pencerelerinin açık olduğu bir test kurulumunda buna ihtiyacım var: bazı minicom gömülü cihazlara bağlanan çeşitli seri hatlara çalışıyor ve diğerleri test komut dosyası dizinlerinde oturuyor ve böyle. gnome-terminal, her boyutta iyi görünümlü, okunabilir yazı tipleriyle yeniden boyutlandırmak için en iyi özelliklere sahiptir. Ne yazık ki, bir hafta boyunca 2GB'a kadar çılgın gibi hafıza sızdırıyor. Ayrı süreçler bu sorunun kontrol altına alınmasına yardımcı olarak daha yönetilebilir hale getirir.
Kaz

Rxvt, aterm, eterm, xterm, Terminator ve diğer birkaçını denedim. Elbette hepsi ayrı işlemler olarak kolayca çalışır, ancak başka şekillerde emer. Belgelenmiş yeniden boyutlandırma rxvt kısayol tuşları çalışmaz. Aterm ve xterm düz o bölümde emmek. Terminator, pencere boyutu olmadan yazı tipi boyutunu değiştiren garip yeniden boyutlandırmaya sahiptir. ETerm dört sabit yazı tipiyle tamamen yeniden boyutlandırıyor; Yaklaşık 30 dakika boyunca seçeneklerle oynadım, sonra kaldırdım.
Kaz

@Kaz xterm + xdotool --window "$WINDOWID"?
Gilles 'SO- kötü olmayı bırak'

@Kaz Sen yolu üzerinde muhtemelen konum ama çok tavsiye urxvtüzerine rxvt. Ve evet, gnome-terminalhala grafiksel olarak daha üstündür ama bir şekilde kaçırmamayı öğrendim. Muhtemelen yeni pencere yöneticisi ile çok şey var ( i3şimdi kullanmak ama herkes için değil).
cprn

Diğer düzinelerce libvte tabanlı terminalden herhangi birine bakın? Gnome-terminal, kendi terminal uygulamalarını kullanan, yukarıda bahsedilen geri kalanın aksine, arka uçtaki kütüphaneyle arayüz oluşturan sadece bir uygulamadır.
dragon788

17

Yeni istemci / sunucu mimarisi nedeniyle (ayrıntılar burada ) için ayrı örnekleri başlatmanız gerekir gnome-terminal-server. Bunu yapmak için --app-idanahtarı kullanabilirsiniz :

/usr/lib/gnome-terminal/gnome-terminal-server --app-id my.first.Terminal

ardından yeni sunucunun içinde terminal 1 oluşturmak için istemciyi (aynı uygulama kimliğiyle) kullanın :

gnome-terminal --app-id my.first.Terminal
gnome-terminal --full-screen --app-id my.first.Terminal
......

Başka bir örnek:

/usr/lib/gnome-terminal/gnome-terminal-server --app-id my.second.Terminal

ve terminaller:

gnome-terminal --geometry 80x24+200+200 --app-id my.second.Terminal
gnome-terminal --app-id my.second.Terminal
.....

Giden Yol gnome-terminal-serversisteminizde farklı olabilir.


1: "İstemciyi yeni sunucunun içinde bir terminal oluşturmak için kullanmak için 10 saniyeniz var" olduğunu unutmayın .


Çalışan bir örnek verebilir veya bu soruya bir göz atabilir
misiniz ?

@CyprianGuerra - bir gnome terminalinde iki sekme açın: ilk sekmede örneğimdeki 1. komutu çalıştırın (yani yeni sunucuyu başlatmak için), sonra 10 saniyeden az bir sürede ikinci sekmeye geçin ve 2. komutu çalıştırın (yeni bir müşteri başlatmak için) ihtiyaçlarınıza göre özelleştirilmiş ...
don_crissti

Sekmeler ... Deneyeceğim. Şimdilik içeride çalışmadığını söyleyebilirim screen.
cprn

Sekme gereksinimi var mı? Aşağıdaki gibi: istemci terminal işlemi sunucunun bir alt öğesi olmak zorunda mı?
cprn

@CyprianGuerra - bu sadece bir örnekti, görebildiğim kadarıyla gerekli değil ...
don_crissti

1

Ben mc diğer terminal pencereleri ile aynı alt sekme grubunda olmak ile mücadele ve bu çözümü bulundu.

https://chrisirwin.ca/posts/multiple-instances-of-gnome-terminal/

Adam (Chris Irwin) posta rutini için çözüyor. Alt-tab içinde mc simgesi dışında tam bir başarı ile mc için aynısını yaptım ama bu iyi.

3 dosyaya ihtiyacınız olacak:

/usr/share/dbus-1/services/org.gnome.Terminal-mc.service

[D-BUS Service]
Name=org.gnome.Terminal-mc
SystemdService=gnome-terminal-server-mc.service
Exec=/usr/lib/gnome-terminal-server --class=org.gnome.Terminal-mc --app-id org.gnome.Terminal-mc

/usr/lib/systemd/user/gnome-terminal-server-mc.service

[Unit]
Description=GNOME mc Terminal Server
[Service]
KillMode=process
Type=dbus
BusName=org.gnome.Terminal-mc
ExecStart=/usr/lib/gnome-terminal-server --class=org.gnome.Terminal-mc --app-id org.gnome.Terminal-mc

/usr/local/share/applications/mc.desktop

Bu, gece yarısı komutanı için masaüstü girişinizdir. Kendi düzenlenmiş kopyanız olduğunu vurgulamak için doğrudan düzenleyin /usr/share/applications/...veya oradan hareket ettirin /usr/local/share/applications/mc.desktop. Her durumda, Execgiriş,gnome-terminal --app-id org.gnome.Terminal-mc -e mc

Exec=gnome-terminal --app-id org.gnome.Terminal-mc --hide-menubar --geometry=102x35 -e mc

Yukarıdakilerin tümünü arşivle

https://we.tl/t-6rH5jduMG7 Bu .tar.gz /. Yukarıdaki dosyaları artı mc için .svg simgesi oluşturacaktır.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.