startx 명령은 무엇을합니까?


18

우분투에 대해 읽는 동안 나는 다음 진술을 발견했다 .....

기본 실행 수준에서 디스플레이 관리자가 기본적으로 시작되지 않은 경우 텍스트 모드 콘솔에 로그온 한 후 명령 줄에서 startx를 실행하여 X를 다른 방식으로 시작할 수 있습니다.

기본 런레벨이란 무엇입니까? 그리고 터미널에서 이것을 시도했을 때 나는 이것을 얻었습니다.

anupam@JAZZ:~$ startx

X: user not authorized to run the X server, aborting.
xinit: giving up
xinit: unable to connect to X server: Connection refused
xinit: server error

방금 startx를 실행했지만 당신과 같은 오류가 발생하여 sudo를했습니다. 루트 계정으로 로그인했습니다. 사용자에게 돌아 가기 위해 루트에서 로그 아웃했습니다.

답변:


25

옛날 옛적에 (1) 컴퓨터의 메모리를 킬로바이트 단위로 측정하고 디스크를 메가 바이트 단위로 측정 할 때 항상 그래픽 인터페이스를 실행하는 것은 해로운 것으로 간주되었습니다.

대부분의 Unix 컴퓨터는 다중 사용자 환경에서 과학 계산 및 시뮬레이션에 사용되었으며 컴퓨터에서 실행되는 그래픽 인터페이스는 사용 가능한 메모리와 CPU 전력을 줄입니다.

그래픽 인터페이스가 필요할 때 방금 startx(2)로 시작했습니다 .

startx기본적으로 Xserver (그래픽 "드라이버") 와이 서버에서 실행되는 명령 (일반적으로 창 관리자)을 실행 합니다. 기본적으로 실행되는 명령은 ~/.xinitrc홈 디렉토리의 파일에 있거나 그렇지 않은 경우 일부 일반 시스템 파일에 있습니다.

현대의 시스템은 처음부터 그래픽 시스템을 항상 실행하는 것으로 생각되므로 아무도 startx오랜 세월 동안 작업을 확인하지 않았을 수 있습니다.

실험하고 좋은 느낌을 받으려면 가장 좋은 방법은 다음을 수행하는 것입니다.

A) 설치 Xnestfvwm. Xnest 는 일반 시스템의 창으로 열리는 일종의 서버 인 서버 내 그래픽 서버입니다. Fvwm 은 당시 매우 인기가 있었던 매우 간단한 창 관리자입니다. 오래된 픽스맵 글꼴도 필요합니다.

sudo apt-get install xnest fvwm 
sudo apt-get install xfonts-100dpi xfonts-100dpi-transcoded xfonts-75dpi-transcoded xfonts-75dpi 

B)이 파일을 예를 들어 홈 디렉토리에 쓰고 호출하십시오 ~/test.

#!/bin/bash 
#
xterm & 
exec fvwm2

C) 실행 (알림 : startx일반적으로 먼저 클라이언트 명령, 이중 대시 및 서버 명령으로 실행됩니다. 앞에서 언급했듯이 대부분의 새 시스템에는 적절한 기본값이 없습니다 startx.)

cd ~
startx ~/test -- /usr/bin/Xnest -ac :1 -geometry 800x600

... 80ies 워크 스테이션 화면이 있습니다.

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

"Xnest"바탕 화면을 클릭하면 메뉴를 볼 수 있습니다.

... 정말 모험적이라고 생각되면 Ctrl-Alt-F1을 사용하여 다른 가상 콘솔에서 기본 세션을 시작하고 (다른 답변 읽기) 로그인 및

startx ~/test 

일반적으로 Ctrl-Alt-F8에서 열립니다.

참고 : 최신 데스크탑 환경은 동일한 사용자에 대해 두 개의 다른 콘솔에서 동시에 실행되도록 설계되지 않았습니다. 그래서 사용하지 않는 gnome-shell또는 unity이 실험을 수행 할 때 현대 일 또는, 또는 당신은 엉망으로 구성을 할 수있다.


각주 :

(1) 여기에서 1980-90 년경에 대해 말하십시오.

(2) 예를 들어, 256k RAM의 노트북이있었습니다. (B & W!) 그래픽 인터페이스에서는 속도가 느리지 만 콘솔에서는 빠릅니다. 나는 내 작품 (편집의 대부분 않았다 그래서 C, LaTeX콘솔 모드에서와 유사한 파일), 정말 필요한 경우에만 그래픽 환경으로 전환.


4
고맙습니다 Rmano @ 좋은 설명은 완전히 ... 그것을 가지고
나사로

9

startx 로그인 화면과 ASCII 콘솔 (텍스트 세션) 이외의 항목이 표시되는 xsession 또는 그래픽 인터페이스를 시작합니다.

xsession이 이미 시작되었고 tty7의 xsession 내부에서 명령을 실행하려고하므로이 오류가 발생합니다.

tty7은 ctrl+ alt+ f7(기본 xsession)에 존재하는 사용자 인터페이스입니다 .

tty1은 ctrl+ alt+에 존재하는 사용자 인터페이스입니다 f1.

tty2는 ctrl+ alt+에 존재하는 사용자 인터페이스입니다 f2. . . 등등.

tty1-tty6은 텍스트 세션이며이 화면 중 하나에서 사용자 이름과 비밀번호로 로그인 할 수 있습니다. 로그인 한 후 명령을 실행할 수 startx있으며 xsession이 아직 실행 중이 아닌 경우 tty7에서 시작하고 tty7이 이미 xsession을 실행 중이면 tty8이 시작됩니다.


실행 레벨 :

run-level 0 Halt-시스템을 종료합니다.

실행 수준 1 단일 사용자 모드-관리 작업 모드.

실행 수준 2 네트워킹이있는 그래픽 다중 사용자-시스템을 정상적으로 시작합니다.

런레벨 3-5 미사용이지만 런레벨 2와 동일하게 구성

run-level 6 재부팅-시스템을 재부팅합니다.

runlevel이라는 용어는 Unix System V 스타일 초기화를 구현하는 컴퓨터 운영 체제 중 하나에서 작동 모드를 나타냅니다. 일반적으로 0에서 6까지 7 개의 런레벨이 존재합니다. 0에서 9까지 (인용 필요) 최대 10 개까지 사용할 수 있습니다. S는 때때로 레벨 중 하나의 동의어로 사용됩니다. 부팅시 하나의 "실행 수준"만 실행됩니다. 실행 수준은 순차적으로 실행되지 않습니다. 즉, 실행 수준 2 또는 3 또는 4가 실행되고 2가 아닌 3이 아니라 4가 실행됩니다. - en.wikipedia.org / wiki / Runlevel


감사합니다 mchid 그것은 많은 도움이되었습니다
lazarus

하지만 tty1에 로그인하고 $ startx를 수행하면 시작 표시 줄 및 기타 옵션이없는 바탕 화면 창이 나타납니다 ... (tty8에서) Ctrl + Alt + F8, 내 startx가 제대로 구성되지 않았거나 일부 제한이 표시됩니다 startx의 옵션 (여기서는 데스크톱 만 해당)
lazarus

1
@jazzz 기본 x 환경입니다. 대부분의 데스크탑 환경이 설치되어있을 것입니다. 이 같은 명령을 실행할 수 있도록 터미널을 얻기 위해 CTRL + T를 할 수 있어야 unity하거나 gnome-shell --replace또는 gnome-panel또는 metacity --replace.
mchid

@jazzz 또한이 답변에 동의하면 왼쪽의 아이콘을 클릭하여 닫으십시오. 감사!
mchid

죄송합니다.이 문제에 대한 다른 쿼리가 늦었습니다 .- 위에서 언급 한 것처럼 Ctrl + Alt + F8으로 얻은 새 창이 작업 공간과 비슷합니까?
나사로

4

그것은 단순히 다른 tty 를 의미 합니다.

관련 질문 인용 :

기본적으로 우분투에는 7 개의 tty가 있습니다.

1-6명령 행 전용이며 7X 세션 (일반 그래픽 데스크탑)을 실행합니다.

액세스하려면 다음 단축키를 사용하십시오. Ctrl+ Alt+F1

( F1필요한 터미널에 액세스하기 위해 F1-F6로 변경 )

X 세션 (일반 데스크탑)으로 돌아가려면 다음을 사용하십시오. Ctrl+ Alt+F7

after logging on to a text-mode console 단순히 다른 tty에 로그인하고 명령을 입력하는 것을 의미합니다.

startx

1

Rmano가 지적했듯이 startx는 매우 오래된 접근법입니다. 이것이 사용될 때 X11 바이너리는 setuid root로 설치되었습니다.

방금 VM 에서이 작업을 시도했지만 실제로 startx설명하는 것처럼 기본적으로 실패합니다. chmod u+s /usr/lib/xorg/Xorg그래도 수정합니다.

나는 setuid 루트를 만드는 것을 권장 하지 않습니다 Xorg. 세상은 좋은 이유 때문에 그것으로부터 멀어졌습니다. 그러나 버림받은 VM에서 놀고 있다면 그것이 startx작동 하는 방법 입니다.


1

QEMU + Buildroot 최소 예

내가하는 일을 배우는 가장 좋아하는 방법은 그것을 실행하는 최소한의 예를 만드는 것입니다.

우분투에서는 startx현재 데스크톱과 잠시 충돌 할 수 있으므로 어렵습니다 .

/ubuntu//a/519164/52975 제안 Xnest하지만 QEMU + Buildroot를 사용하면 X11 만 설치하면 훨씬 더 작아지고 마이크로 배포판을 만들 수 있습니다.

이런 식으로 무슨 일이 일어나고 있는지 이해하기 쉬워야합니다.

/unix//a/306116/32558 에서 배포판 작성에 대해 설명했습니다.

QEMU에서 이미지가 실행되면 TTY 쉘에서 시작합니다.

그런 다음에 할 때 :

root
startx

X11 GUI를 시작합니다.

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

이제 startx배포판 내부 의 소스를 살펴보십시오 . 쉘 스크립트 일뿐입니다.

간단한 래퍼 /usr/bin/xinit이며 통과합니다./etc/X11/xinit/xinitrc 됩니다 xinit.

를 열면 /etc/X11/xinit/xinitrc다음 행이 포함됩니다.

twm &
xclock -geometry 50x50-1+1 &
xterm -geometry 80x50+494+51 &
xterm -geometry 80x20+494-0 &

그래서 우리는 그것이 시작되는 것을 봅니다.

  • twm: 매우 간단하고 오래된 창 관리자
  • xclock그리고 xterm우리는 화면에 표시되는

의 경우 다음 /usr/bin/xinit을 수행 할 수 있습니다.

man xinit

그것은 말합니다 :

명령 행에 특정 클라이언트 프로그램이 없으면 xinit는 사용자의 홈 디렉토리에서 .xinitrc라는 파일을 찾아 클라이언트 프로그램을 시작하기위한 쉘 스크립트로 실행합니다. 이러한 파일이 없으면 xinit는 다음을 기본값으로 사용합니다.

xterm  -geometry  +1+1  -n  login  -display  :0

명령 행에 특정 서버 프로그램이 없으면 xinit는 사용자의 홈 디렉토리에서 .xserverrc라는 파일을 찾아 서버를 시작하기위한 쉘 스크립트로 실행합니다. 이러한 파일이 없으면 xinit는 다음을 기본값으로 사용합니다.

X  :0
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.