Gnome-Terminal

執行 gnome-terminal 的真正多程序實例

  • February 23, 2019

如果您gnome-terminal正在執行,並且想要一個新的程序實例,您可能會認為gnome-terminal &從 shell 執行就可以了。

令人驚訝的是,這個新實例的行為就像一些乏味的 Windows 或 Mac 程序。它只向現有的、正在執行的視窗發送消息以gnome-terminal創建新視窗。如果這一gnome-terminal程序崩潰,您將失去所有終端視窗!

(當然,每個視窗都有自己的 shell,它是一個獨立的程序,但實際的終端仿真器及其 GUI 是由應用程序的單個實例管理的。)

我們如何創建獨立的實例gnome-terminal,每個實例都在自己的程序中執行,以便殺死該程序只會破壞與該程序關聯的視窗?

根據man gnome-terminal,您正在尋找的選項似乎是令人困惑的名稱

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

但是,該選項在最近的版本中顯然已刪除,因此不應依賴。

由於新的客戶端/伺服器架構(此處有詳細資訊),您必須啟動單獨的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秒的時間使用客戶端在新伺服器內創建終端”*。

引用自:https://unix.stackexchange.com/questions/201900