디스플레이 관리자없이 GUI를 사용하여 프로그램 시작


9

터미널에서 직접 디스플레이 관리자없이 그래픽 인터페이스로 프로그램을 시작하는 방법이 있다고 들었습니다. 이것은 실제적인 것이며 그렇다면 그렇다면 어떻게 할 수 있습니까?


GUI와 상호 작용해야합니까?
Daniel B

@DanielB 그래, 아마
Ben

1
디스플레이 관리자없이 실행할 수 있지만 실행중인 X 세션이 필요합니다. 어떤 배포판을 사용하고 있습니까? X 서버가 설치되어 있습니까? 당신은 실행할 수 xinit또는 startx?
terdon

@ terdon 네, 현재 lmint를 실행하고 있지만 질문은 일반적인 지식에 대한 것입니다 (배포 대상이 아닙니다).
Ben

답변:


5

디스플레이 관리자없이 실행할 수 있지만 실행중인 X 세션이 필요합니다. 세부 사항은 배포판에 따라 다르지만 단일 터미널로 최소 X 세션을 실행할 수 있어야합니다.

xinit

나는 몇 년 동안 이것을하지 않았지만, 마지막으로 그렇게했을 때, 그것은 다음과 같은 것을 줄 것입니다 :

여기에 이미지 설명을 입력하십시오

일단, GUI 프로그램을 백그라운드에서 시작하여 (가있는 &) GUI 프로그램을 정상적으로 실행할 수 있으므로 유일한 터미널에 대한 액세스를 느슨하게하지 않아도됩니다.


2
"정상적으로 실행"하는 것은 프로세스의 백그라운드를 포함 할 가능성이 높으므로 xterm &,뿐만 아니라 추가 터미널을 얻는 데 사용하고 싶을 것 xterm입니다. 기타
CVn

6

GUI 앱을 헤드리스로 실행하는 기본 방법은 여기 vnc에 연결 하는 방법 ( )입니다. 가족 RHEL7Centos 7함께 작업합니다 . https://github.com/xeor/dockerfiles/tree/master/crashplan/ 에있는 Crashplan에 사용하는 Docker 이미지를 제거했습니다 ( Dockerfile설정 및 init/setup시작 참조).

# Needed environment variables
export DISPLAY=:99.0
export SCREEN_WIDTH=1200
export SCREEN_HEIGHT=960
export SCREEN_DEPTH=24
export GEOMETRY="${SCREEN_WIDTH}x${SCREEN_HEIGHT}x${SCREEN_DEPTH}"

# Needed packages
yum install -y xorg-x11-server-Xvfb x11vnc gtk2 xorg-x11-fonts-*

# Set a password (if variable vncpass is sat, else its `secret`)
mkdir -p ~/.vnc && x11vnc -storepasswd ${vncpass:-secret} ~/.vnc/passwd

# Start up the fake display and run the application you want (the `java ...` part)
xvfb-run --server-args="$DISPLAY -screen 0 $GEOMETRY -ac +extension RANDR" java .... > log/ui_output.log 2> log/ui_error.log &

# Wait for the app to start, or else, the vnc server will die before starting
sleep 5

# vnc itself
x11vnc -forever -usepw -shared -rfbport 5900 -display $DISPLAY

이제 server : 5900에 연결하여 응용 프로그램을 볼 수 있어야합니다.


3

예. 디스플레이 관리자와 동일한 작업을 수행하십시오. 그래픽 로그인 화면 (이 경우에는 필요하지 않음) 외에도 디스플레이 관리자는 두 가지 작업 만 수행합니다.

  1. 먼저 Xorg와 같은 X11 "디스플레이 서버"를 시작합니다.
  2. 그런 다음 "클라이언트"를 시작하여 Xorg에 무엇을 그리고 어디로 그릴 지 알려줍니다.

startx콘솔 로그인에서 X11을 시작하는 것과 같은 도구를 사용할 수 있습니다 . Xorg가 시작되고 ~/.xinitrc파일에 나열된 클라이언트가 시작 됩니다.

예를 들어, .xinitrc 파일은 startkde또는 gnome-session을 포함하거나 개별 구성 요소 (윈도우 관리자, 패널 / 작업 표시 줄, 데스크탑 ...)를 나열 할 수 있습니다.

(주 약간의 차이가 있음을 사이 xinitstartx- 일부 배포판은 일반 xinit에가, 즉 무시하는 구성의 몇 가지 중요한 부분이 있기 때문에 일반적으로는 후자를 사용해야합니다 xserverrc. 스크립트)

Wayland와 함께 데스크탑 및 패널은 "컴포 지터"의 통합 된 부분이므로 추가 도구없이 전체 인터페이스가 단일 단계로 시작됩니다. 예를 weston들어을 사용하여 그놈을 실행 하거나 시작할 수 있습니다 gnome-session --session=gnome-wayland.


1

로컬 X 디스플레이 가있는 경우 ssh X 전달 (ssh -X; 서버 구성에서도 활성화해야 할 수도 있음)을 사용하여 X 응용 프로그램을 시작할 수 있습니다 .

헤드리스 시스템에서 실행되는 동안 응용 프로그램이 로컬로 시작되고 표시됩니다. 올바른 라이브러리를 사용하려면 헤드리스 시스템에 X를 설치해야하며, 최신 그놈 응용 프로그램에서는 작동하지 않을 수 있습니다.

$DISPLAY쉘이 원격 콘솔 (ssh 또는 콘솔) 인 경우에도 연결된 X 디스플레이에서 앱을 시작 하는 데 사용할 수 있습니다 . 루트 사용자이고 X 디스플레이에 로그인 한 사람이 아닌 경우 xauth보안을 무시 하고 디스플레이에 창을 표시 할 수 있습니다 . 다른 모니터에 두 개의 다른 X 디스플레이 서버가있는 경우에도 작동합니다.

또 다른 포스터는 VNC를 언급합니다. 나는 또한이 목적으로 NX를 사용했으며 그것을 선호합니다.


답은 관련이 없지만 유용합니다
Ben
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.