부팅시 VNC 서버를 어떻게 시작합니까?


29

시스템 전체 자동 시작 파일을 작성하는 방법 데스크톱 버전의 Maverick을 실행하는 클라우드 서버에 있습니다.

나는 루트로 로그인하고를 사용하여 자동 시작 파일을 System/Preferences/StartupApplications만들었지 만 결국 /root/.config/autostart다시 부팅 할 때 (내가 말할 수있는 한) 실행되지 않았습니다. 자동 시작 파일은 VNC 서버를 호출하는 bash 스크립트를 호출하는 것입니다.

나는에서의 .desktop 자동 시작 파일을 복사 /root/.config/autostart/etc/xdg/autostart다시 부팅. 이것은 차이가없는 것처럼 보였다.

편집 주석에서 언급했듯이 부팅시 VNC 서버를 시작하는 bash 스크립트를 실행하는 것이 목표입니다. 로그인하지 않습니다.


부팅시 자동 시작 또는 누군가 (누구나) 로그온 할 때 자동 시작을 의미합니까?
fossfreedom

부팅 할 때 VNC 서버가 자동으로 시작되기를 원합니다.
H2ONaCl

1
나는 SU SE에서 답을 발견했습니다 superuser.com/questions/147109/... 그것을 시도 줄
wisemonkey

VNC에서 디스플레이를 실행하지 않아도됩니까?
desgua

답변:


19
  1. 먼저 TightVNC 서버를 설치하십시오 sudo apt-get install tightvncserver.

  2. 로그인하려는 사용자의 VNC 서버를 설정하십시오. "vncserver"를 처음으로 실행하면 암호를 설정하라는 메시지가 나타납니다. SSH 터널링 또는 VPN 연결 만 허용합니다. VNC 세션이 시작될 때 프로그램 또는 세션을 시작하려면을 수정하십시오 ~/.vnc/xstartup. 다음은 예입니다.

    #!/bin/sh
    
    xrdb $HOME/.Xresources
    xsetroot -solid black
    /opt/azureus/azureus &
    k3b &
    icewm-session &
    
  3. 에 다음을 복사하십시오 /etc/init.d/vncserver. 가장 쉬운 방법은 클립 보드에 클립 보드에 복사 sudo -i && cat > /etc/init.d/vncserver && exit하고 터미널에서 실행 하여 붙여 넣은 다음 CTRL-D를 입력하는 것입니다. USER 변수를 VNC 서버를 실행할 사용자로 변경하십시오.

    #!/bin/sh -e
    ### BEGIN INIT INFO
    # Provides:          vncserver
    # Required-Start:    networking
    # Default-Start:     3 4 5
    # Default-Stop:      0 6
    ### END INIT INFO
    
    PATH="$PATH:/usr/X11R6/bin/"
    
    # The Username:Group that will run VNC
    export USER="mythtv"
    #${RUNAS}
    
    # The display that VNC will use
    DISPLAY="1"
    
    # Color depth (between 8 and 32)
    DEPTH="16"
    
    # The Desktop geometry to use.
    #GEOMETRY="<WIDTH>x<HEIGHT>"
    #GEOMETRY="800x600"
    GEOMETRY="1024x768"
    #GEOMETRY="1280x1024"
    
    # The name that the VNC Desktop will have.
    NAME="my-vnc-server"
    
    OPTIONS="-name ${NAME} -depth ${DEPTH} -geometry ${GEOMETRY} :${DISPLAY}"
    
    . /lib/lsb/init-functions
    
    case "$1" in
    start)
    log_action_begin_msg "Starting vncserver for user '${USER}' on   localhost:${DISPLAY}"
    su ${USER} -c "/usr/bin/vncserver ${OPTIONS}"
    ;;
    
    stop)
    log_action_begin_msg "Stoping vncserver for user '${USER}' on localhost:${DISPLAY}"
    su ${USER} -c "/usr/bin/vncserver -kill :${DISPLAY}"
    ;;
    
    restart)
    $0 stop
    $0 start
    ;;
    esac
    
    exit 0
    
  4. 로 스크립트를 실행 가능하게 만듭니다 sudo chmod +x /etc/init.d/vncserver.

  5. 마지막으로 포트 590X에서 VNC 클라이언트로 서버에 연결하십시오. 여기서 X는 vncserver 스크립트에서 "DISPLAY"값입니다. OS X에서는 VNC의 Chicken을 사용하고 싶습니다. Windows 및 Linux에서 TightVNC 클라이언트는 훌륭하게 작동합니다.

출처


superuser.com/questions/147109/... wisemonkey에서이 stackexchange 상응하는 대답이다. 작동합니다. X11의 경로를 조정해야 할 수도 있습니다.
H2ONaCl

TigerVNC 설치/etc/init.d/vncserver/etc/sysconfig/vncservers
Kashyap

5
이것은 abdevelopment.ca/blog/start-vnc-server-ubuntu-boot 에서 복사하여 붙여 넣었 지만 가장 중요한 단계 를 남겼 습니다sudo update-rc.d vncserver defaults
Hai Phan

3

한 가지 가능성 : /etc/rc.local

내용은 말한다 :

# This script is executed at the end of each multiuser runlevel.
# Make sure that the script will "exit 0" on success or any other
# value on error.
#
# In order to enable or disable this script just change the execution
# bits. 
#
# By default this script does nothing

내 시스템에서 실행 비트가 이미 755로 설정되어 있습니다. (chmod 755 /etc/rc.local)

거기에 모든 명령을 넣을 수 있으며, 루트로 실행됩니다.

런레벨을 변경하지 않는 한 이것은 당신의 목적에 맞는 것입니다. (런레벨이 무엇인지 모른다면 신경 쓰지 마십시오).


2
이 제안은 저에게 효과적이지 않았습니다.
H2ONaCl

이 두 가지 조정 이 도움 될 수 있습니다.
Cees Timmerman

@CeesTimmerman, 고맙지 만 그 2 가지 조정은 효과가 없었습니다.
H2ONaCl 2016 년

2

TigerVNC를 사용하는 경우 예를 들어 다음과 같이 /etc/init.d/vncserver구성된 모든 vncserver를 시작 하는 설치 가 시작 /etc/sysconfig/vncservers시 디스플레이 1 & 2에서 2 개의 인스턴스를 시작합니다.

# <display>:<user>
VNCSERVERS="1:root"
VNCSERVERARGS[1]="-geometry 1920x1080"

VNCSERVERS="2:guest"
VNCSERVERARGS[2]="-geometry 800x600 -SecurityTypes None"

2

이 게시물은 오래된 게시물 인 것 같지만 일부 사용자에게는 여전히 흥미로운 주제 일 수 있습니다. 부팅시 vnc를 시작하려면 다음을 수행해야합니다.

  1. vnc 서버 소프트웨어 설치 (여기서는 x11vnc 사용)
  2. 시작 스크립트 구성 (vnc 서비스를 시작하는 데 사용)

1 단계-x11vnc 서버 설치

명령 행에서 다음을 입력하십시오.

 sudo apt-get install x11vnc

보안을 추가하려면 비밀번호를 설정해야합니다

sudo x11vnc -storepasswd

2 단계-시작 스크립트 구성

  • 우분투 버전이 15.04보다 낮 으면

당신은 아래에 설정 파일을 생성하고 /etc/init.d/x11vnc.conf실행할 올바른 명령으로 채 웁니다

start on login-session-start  
script  
/usr/bin/x11vnc -xkb -auth
/var/run/lightdm/root/:0
-noxrecord -noxfixes -noxdamage 
-rfbauth /etc/x11vnc.pass 
-forever -bg -rfbport 5900 -o /var/log/x11vnc.log  
end script
  • 우분투 버전이 15.04 이상이면

이러한 시스템은 systemd를 사용하고 있으므로 서비스 유닛 파일을 작성 /lib/systemd/system/x11vnc.service 하고 올바른 명령으로 채워서 실행해야합니다.

[Unit] Description=Start x11vnc at startup. After=multi-user.target

[Service] Type=simple ExecStart=/usr/bin/x11vnc -auth guess -forever
-loop -noxdamage -repeat -rfbauth /home/USERNAME/.vnc/passwd -rfbport 5900 -shared

[Install] WantedBy=multi-user.target

서비스를 다시로드

sudo systemctl daemon-reload

sudo systemctl enable x11vnc.service

도움말 Ubuntu Community Wiki 페이지 ( 여기 참조 ) 에서 자세한 정보를 찾거나이 빠른 사용 수신자를 사용해보십시오.

이것이 도움이 되길 바랍니다.


1

crontab 파일에 아래 줄을 추가하십시오. 이는 @reboot매우 재부팅하는 동안 키워드 가 실행 된 후의 명령을 의미합니다 .

@reboot /usr/bin/vncserver :1

crontab 파일을 열려면 다음 명령을 사용해야합니다 crontab -e


이 6 살짜리 답변과 동일
muru

0

부팅 할 때 cron을 시작하도록 할 수 있습니다. 일을 실행할시기를 지정하기 위해 일반적으로 사용하는 숫자 대신 "@reboot"문자열을 사용하십시오.

예를 들어 Dropbox가 자동으로 시작되지 않는 컴퓨터에서 Dropbox를 시작하는 방법은 다음과 같습니다.

# m h  dom mon dow   command
@reboot         /usr/bin/dropbox start

이 페이지 는 시스템이 실제로 재부팅 된 경우에만 작동합니다 (콜드 부팅 없음).
Cees Timmerman

0

'sudo update-rc.d vncserver defaults'에서 누락 된 것으로보고했습니다. "필수 중지 :"(비어 있음). 그래서 아래처럼 추가했습니다. 그리고 더 이상 경고하지 않습니다.

    #!/bin/sh -e
    ### BEGIN INIT INFO
    # Provides:          vncserver
    # Required-Start:    networking
    # Required-Stop:     
    # Default-Start:     3 4 5
    # Default-Stop:      0 6
    ### END INIT INFO
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.