gnome-terminal의 실제 다중 프로세스 인스턴스 실행

gnome-terminal의 실제 다중 프로세스 인스턴스 실행

이미 gnome-terminal실행 중이고 프로그램의 새 인스턴스를 원할 경우 gnome-terminal &셸에서 실행하면 문제가 해결될 것이라고 생각할 수도 있습니다.

놀랍게도 이 새 인스턴스는 일반적인 Windows 또는 Mac 프로그램처럼 동작합니다. 단순히 기존 실행 메시지에 메시지를 보내 gnome-terminal새 창을 만듭니다. 이 gnome-terminal프로세스가 충돌하면 모든 터미널 창이 손실됩니다!

(물론 각 창에는 별도의 프로세스인 자체 쉘이 있지만 실제 터미널 에뮬레이터와 해당 GUI는 애플리케이션의 단일 인스턴스를 통해 관리됩니다.)

gnome-terminal프로세스를 종료하면 해당 프로세스와 관련된 창만 파괴되도록 각각 자체 프로세스에서 실행되는 독립적인 인스턴스를 어떻게 생성합니까 ?

답변1

새로운 클라이언트/서버 아키텍처로 인해(세부 사항여기) 별도의 인스턴스를 시작해야 합니다 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초가 주어집니다.".

답변2

에 따르면 man gnome-terminal찾고 있는 옵션에 혼란스러운 이름이 있는 것 같습니다.

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

그러나 이 옵션은 분명히최신 버전에서는 제거됨따라서 의존해서는 안됩니다.

답변3

mc가 다른 터미널 창과 동일한 alt-tab 그룹에 있는 문제로 어려움을 겪고 있으며 이 솔루션을 찾았습니다.

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

이 사람(Chris Irving)은 이메일 루틴에서 이 문제를 해결했습니다. Alt-탭의 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

이것은 Midnight Commander의 데스크톱 항목입니다. 직접 편집 /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 아이콘이 생성됩니다.

관련 정보