gnome-terminalの真の複数プロセスインスタンスを実行する


17

実行していgnome-terminalて、プログラムの新しいインスタンスが必要な場合は、gnome-terminal &シェルから実行するとうまくいくと思うかもしれません。

驚いたことに、この新しいインスタンスは、不明瞭なWindowsまたはMacプログラムのように動作します。既存のメッセージを送信するだけでgnome-terminal、新しいウィンドウを作成するために実行されます。この1つのgnome-terminalプロセスがクラッシュすると、ターミナルウィンドウがすべて失われます。

(もちろん、各ウィンドウには独立したプロセスである独自のシェルがありますが、実際のターミナルエミュレーターとそのGUIはアプリケーションの単一インスタンスから管理されます。)

の独立したインスタンスを作成してgnome-terminal、それぞれを独自のプロセスで実行し、そのプロセスを強制終了すると、そのプロセスに関連付けられたウィンドウのみが破壊されるようにするにはどうすればよいですか?


あなたは可能との成功を持っているgnome-terminal --disable-factoryが、それは明らかにwitdrawnされているのサポート
steeldriver

@steeldriver動作しているようです。それを答えにしたいですか?サポートが取り下げられることは気にしません。なぜこれが見つけにくいのですか?のドキュメントで--disable-factoryは、「新しいプロセス(またはアドレス空間)で開始します。既存のインスタンスを再利用しないでください」などの標準的な用語は使用していません。
カズ


2
これらのプロジェクトを実行している人々がそのようなくだらない決定をし続けるとは信じられません。何も学びませんでしたか?数キロバイトのRAMを節約することに関心があるのは誰か 端末同士がクラッシュするのを防ぐことが最優先事項だと思うでしょう。戻ってrxvt私は推測する。
トビア

実際、rxvt真のマルチプロセス端末が必要な人にはお勧めできます。Truetypeフォントのサポート、長い行の再折り返し、および最新の端末のその他のほとんどの機能があります。
トビア

回答:


9

によるとman gnome-terminal、あなたが探しているオプションは紛らわしい名前のようです

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

ただし、このオプションは最近のリリースでは明らかに削除されているため、信頼しないでください。


これはうまく機能します。ピンヘッドがこの機能を削除するまでに、私は気にしなくなるでしょう。これは、10以上のターミナルウィンドウが開いているテストセットアップで必要です。組み込みデバイスに接続するさまざまなシリアル回線に対してminicomを実行しているものや、テストスクリプトディレクトリに座っているものなどです。gnome-terminalには、あらゆるサイズで見栄えの良い読みやすいフォントでサイズ変更するための最適な機能があります。残念ながら、1週間で2GBに増えて、狂ったようにメモリがリークします。個別のプロセスがこの問題の抑制に役立ち、管理しやすくなります。
カズ

rxvt、aterm、eterm、xterm、Terminatorなどを試してみました。もちろん、それらはすべて別々のプロセスとして簡単に実行できますが、他の方法ではうまくいきません。rxvtの文書化されたサイズ変更ホットキーは機能しません。Atermとxtermは、その部門でよくありません。ターミネーターには、ウィンドウサイズなしでフォントサイズを変更する奇妙なサイズ変更があります。ETermは、4つの固定フォントで完全に奇抜なサイズ変更を行っています。私は約30分間オプションを試し、それをアンインストールしました。
カズ

@Kaz xterm + xdotool --window "$WINDOWID"
ジル「SO-悪であるのをやめる」

@Kazあなたはおそらくそれをはるかに超えていますが、私は強くお勧めurxvtrxvtます。そして、はい、gnome-terminalまだグラフィカルに優れていますが、私はそれを見逃さないことを何とか学んだ。おそらく、新しいウィンドウマネージャーと関係があります(i3現在は使用していますが、すべてのユーザー向けではありません)。
cprn

他の多数のlibvteベースの端末を調べますか?Gnome-terminalは、独自のターミナル実装を使用する上記の残りの部分とは異なり、バックエンドでそのライブラリとインターフェイスするだけのアプリケーションです。
dragon788

17

新しいクライアント/サーバーアーキテクチャ(詳細はこちら)のため、の個別のインスタンスを起動する必要がありgnome-terminal-serverます。これを行うには、--app-idスイッチを使用できます。

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

次に、クライアント(同じapp-idを使用)を使用して、新しいサーバー内に端末1を作成します。

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

別のインスタンス:

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

および端末:

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

gnome-terminal-serverシステムへのパスは異なる場合があります。


1:「クライアントを使用して新しいサーバー内に端末を作成するのに10秒かかります」ことに注意してください。


あなたは、実施例を与えるか、この質問を見てみることができます?:unix.stackexchange.com/questions/304269/...
cprn

@CyprianGuerra-gnome-terminalで2つのタブを開きます:最初のタブで私の例の1番目のコマンドを実行し(つまり、新しいサーバーを起動します)、10秒以内に2番目のタブに切り替えて2番目のコマンドを実行します(新しいクライアントを開始するため)ニーズごとにカスタマイズ
...-don_crissti

タブ...試します。今のところ、私はそれが内部で動作しないと言うことができますscreen
cprn

タブの要件はありますか?たとえば、クライアントターミナルプロセスはサーバーの子である必要がありますか?
cprn

@CyprianGuerra -それは単なる一例だった、彼らはしていない必要な ...私が見ることができるものから
don_crissti

1

私はmcが他のターミナルウィンドウと同じalt-tabグループにあることに苦労しており、この解決策を見つけました。

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

その男(Chris Irwin)は、メールルーチンでそれを解決します。alt-tab内のmcアイコンを除けば、mcでも同じように成功しましたが、それでも問題ありません。

次の3つのファイルが必要です。

/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

これは、真夜中の司令官のデスクトップエントリです。直接編集するか/usr/share/applications/...、そこから移動して/usr/local/share/applications/mc.desktop、自分で修正したコピーであることを強調します。いずれにせよ、Execエントリは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

上記すべてのアーカイブ

https://we.tl/t-6rH5jduMG7 これは.tar.gzで解凍されます/。上記のファイルと、mcの.svgアイコンが作成されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.