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


17

당신이있는 경우 gnome-terminal실행 및 프로그램의 새 인스턴스를 원하는, 당신은 실행 생각할 수 있습니다 gnome-terminal &쉘에서하는 트릭을 할 것입니다.

놀랍게도이 새로운 인스턴스는 부적절한 Windows 또는 Mac 프로그램처럼 작동합니다. gnome-terminal새 창을 만들기 위해 실행중인 기존 메시지 만 보냅니다 . 이 하나의 gnome-terminal프로세스가 충돌하면 모든 터미널 창을 잃게됩니다!

(물론, 각 창에는 독립적 인 프로세스 인 자체 쉘이 있지만 실제 터미널 에뮬레이터와 GUI는 단일 응용 프로그램 인스턴스에서 관리됩니다.)

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


당신은 와 성공을 gnome-terminal --disable-factory, 그러나 분명히 witdrawn되고있는 그것을 지원
steeldriver

@steeldriver 그것은 작동하는 것 같다; 답을 구할까? 지원 철회에 관심이 없습니다. 왜 이렇게 찾기가 어렵습니까? 에 대한 설명서는 --disable-factory"새 프로세스에서 시작 (또는 주소 공간)과 같은 표준 용어를 사용하지 않으므로 기존 인스턴스를 재사용하지 마십시오".
Kaz


2
나는이 프로젝트를 운영하는 사람들이 계속 그렇게 엉뚱한 결정을 내린다는 것을 믿을 수 없습니다. 우리는 아무것도 배우지 않았습니까? 몇 킬로바이트의 RAM을 절약하는 데 누가 관심이 있습니까? 터미널이 서로 충돌하지 않도록하는 것이 최우선 순위라고 생각할 것입니다. 위로 rxvt것 같아요.
Tobia

사실, rxvt진정한 다중 프로세스 터미널을 원하는 사람에게 추천 할 수 있습니다 . 트루 타입 글꼴 지원, 긴 줄 다시 랩핑 및 최신 터미널의 대부분의 다른 기능이 있습니다.
Tobia

답변:


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에는 크기에 상관없이 잘 보이고 읽을 수있는 글꼴로 크기를 조정할 수있는 최고의 기능이 있습니다. 불행히도, 미친 것처럼 메모리가 누출되어 일주일 동안 2GB로 증가합니다. 별도의 프로세스가이 문제를 해결하는 데 도움이되므로 관리하기가 더 쉽습니다.
Kaz

나는 rxvt, aterm, eterm, xterm, Terminator 및 다른 몇 가지를 시도했습니다. 물론 모두 별도의 프로세스로 쉽게 실행할 수 있지만 다른 방식으로 빨려 들어갑니다. rxvt의 문서 크기 조정 단축키가 작동하지 않습니다. Aterm과 xterm plain은 그 부서를 빨아들입니다. 터미네이터는 이상한 크기 조정으로 창 크기없이 글꼴 크기를 변경합니다. ETerm은 4 개의 고정 글꼴로 크기가 완전히 엉망입니다. 약 30 분 동안 옵션을 사용한 후 제거했습니다.
Kaz

@Kaz xterm + xdotool --window "$WINDOWID"?
Gilles 'SO- 악마 그만해

@Kaz 당신은 길 위에 아마있어하지만 내가보기 엔 추천 urxvt을 통해 rxvt. 그리고 그래, gnome-terminal그래도 여전히 그래픽이 뛰어나지 만 나는 그것을 놓치지 않는 법을 배웠다. 아마도 새로운 창 관리자와 관련이있을 것입니다 ( i3지금 사용 하지만 모든 사람을위한 것은 아닙니다).
cprn

12 개의 다른 libvte 기반 터미널 중 하나를 찾으십니까? 그놈 터미널은 위에서 언급 한 나머지 터미널 구현과 달리 백엔드에서 해당 라이브러리와 인터페이스하는 하나의 응용 프로그램입니다.
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 초가 걸립니다" .


실제 예제를 보거나이
cprn

@CyprianGuerra-gnome-terminal에서 두 개의 탭을 엽니 다. 첫 번째 탭에서 예에서 첫 번째 명령을 실행 (즉, 새 서버를 시작) 한 다음 10 초 이내에 두 번째 탭으로 전환하고 두 번째 명령을 실행하십시오. (새로운 고객을 시작하기 위해) 귀하의 필요에 따라 맞춤화 된 ...
don_crissti

탭 ... 시도하겠습니다. 지금은 내부에서 작동하지 않는다는 것을 알 수 있습니다 screen.
cprn

탭이 필요합니까? 에서와 같이 : 클라이언트 터미널 프로세스는 서버의 자식이어야합니까?
cprn

@CyprianGuerra-이것은 단지 예일 뿐이며, 내가 볼 수있는 것에서 요구 되지는 않습니다 .
don_crissti

1

나는 다른 터미널 창과 동일한 alt-tab 그룹에 mc로 어려움을 겪고 있으며이 솔루션을 발견했습니다.

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.