터미널에서 직접 디스플레이 관리자없이 그래픽 인터페이스로 프로그램을 시작하는 방법이 있다고 들었습니다. 이것은 실제적인 것이며 그렇다면 그렇다면 어떻게 할 수 있습니까?
xinit
또는 startx
?
터미널에서 직접 디스플레이 관리자없이 그래픽 인터페이스로 프로그램을 시작하는 방법이 있다고 들었습니다. 이것은 실제적인 것이며 그렇다면 그렇다면 어떻게 할 수 있습니까?
xinit
또는 startx
?
답변:
디스플레이 관리자없이 실행할 수 있지만 실행중인 X 세션이 필요합니다. 세부 사항은 배포판에 따라 다르지만 단일 터미널로 최소 X 세션을 실행할 수 있어야합니다.
xinit
나는 몇 년 동안 이것을하지 않았지만, 마지막으로 그렇게했을 때, 그것은 다음과 같은 것을 줄 것입니다 :
일단, GUI 프로그램을 백그라운드에서 시작하여 (가있는 &
) GUI 프로그램을 정상적으로 실행할 수 있으므로 유일한 터미널에 대한 액세스를 느슨하게하지 않아도됩니다.
xterm &
,뿐만 아니라 추가 터미널을 얻는 데 사용하고 싶을 것 xterm
입니다. 기타
GUI 앱을 헤드리스로 실행하는 기본 방법은 여기 vnc
에 연결 하는 방법 ( )입니다. 가족 RHEL7
과 Centos 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에 연결하여 응용 프로그램을 볼 수 있어야합니다.
예. 디스플레이 관리자와 동일한 작업을 수행하십시오. 그래픽 로그인 화면 (이 경우에는 필요하지 않음) 외에도 디스플레이 관리자는 두 가지 작업 만 수행합니다.
startx
콘솔 로그인에서 X11을 시작하는 것과 같은 도구를 사용할 수 있습니다 . Xorg가 시작되고 ~/.xinitrc
파일에 나열된 클라이언트가 시작 됩니다.
예를 들어, .xinitrc 파일은 startkde
또는 gnome-session
을 포함하거나 개별 구성 요소 (윈도우 관리자, 패널 / 작업 표시 줄, 데스크탑 ...)를 나열 할 수 있습니다.
(주 약간의 차이가 있음을 사이 xinit
와 startx
- 일부 배포판은 일반 xinit에가, 즉 무시하는 구성의 몇 가지 중요한 부분이 있기 때문에 일반적으로는 후자를 사용해야합니다 xserverrc
. 스크립트)
Wayland와 함께 데스크탑 및 패널은 "컴포 지터"의 통합 된 부분이므로 추가 도구없이 전체 인터페이스가 단일 단계로 시작됩니다. 예를 weston
들어을 사용하여 그놈을 실행 하거나 시작할 수 있습니다 gnome-session --session=gnome-wayland
.
로컬 X 디스플레이 가있는 경우 ssh X 전달 (ssh -X; 서버 구성에서도 활성화해야 할 수도 있음)을 사용하여 X 응용 프로그램을 시작할 수 있습니다 .
헤드리스 시스템에서 실행되는 동안 응용 프로그램이 로컬로 시작되고 표시됩니다. 올바른 라이브러리를 사용하려면 헤드리스 시스템에 X를 설치해야하며, 최신 그놈 응용 프로그램에서는 작동하지 않을 수 있습니다.
$DISPLAY
쉘이 원격 콘솔 (ssh 또는 콘솔) 인 경우에도 연결된 X 디스플레이에서 앱을 시작 하는 데 사용할 수 있습니다 . 루트 사용자이고 X 디스플레이에 로그인 한 사람이 아닌 경우 xauth
보안을 무시 하고 디스플레이에 창을 표시 할 수 있습니다 . 다른 모니터에 두 개의 다른 X 디스플레이 서버가있는 경우에도 작동합니다.
또 다른 포스터는 VNC를 언급합니다. 나는 또한이 목적으로 NX를 사용했으며 그것을 선호합니다.