Raspberry Pi 2에서 TightVncServer 자동 시작


11

나는 라즈베리 파이 (2)를 가지고에 게시물 다음이었다 Raspberrypi.org 다시 부팅 시작되지 않고 타이트 VNC 서버. 오류가없는 것 같습니다.

Pi Reboot에서 TightVncServer를 시작하려면 어떻게해야합니까?


아직 답변을 게시 할 수는 없지만 adafruit에 나와있는 pi 3 B 작업을 수행하는 간단한 방법이 있습니다. learn.adafruit.com/…
Steven Evers

답변:


10

이를 위해 약간의 Linux 영리함을 사용할 수 있습니다.

첫 번째 작업은 /etc/rc.local 파일을 편집하는 것입니다. 이 파일에는 시작시 실행되는 명령이 포함될 수 있습니다. 파일을 보면 이미 몇 개의 항목이 있음을 알 수 있습니다.

#!/bin/sh -e
#
# 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.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

exit 0

해시 표시 (#)가있는 첫 번째 줄은 주석입니다. 이것들은 파일을 읽는 사람에게 무슨 일이 일어나고 있는지 설명하기 위해 있습니다.

맨 아래를 향한 코드 줄은 컴퓨터의 IP 주소와 관련이 있습니다. 실제로 이들은 라즈베리 파이에 IP 주소가 있는지 확인하고 있으면 IP 주소를 인쇄하는 짧은 스크립트입니다. Pi를 부팅 할 때 화면에 IP 주소가 인쇄 된 것을 볼 수 있습니다.

My IP address is 10.1.1.8

Raspbian GNU/Linux 7 raspberrypi tty1

raspberrypi login:

rc.local에있는이 스크립트는 IP 주소 인쇄를 담당하는 코드입니다!

다음 명령을 rc.local에 추가합니다.

su - pi -c '/usr/bin/tightvncserver :1'

이 명령은 사용자를 su-pi를 가진 'pi'사용자로 전환합니다. su는 '사용자 전환'을 나타내며 대시 (-)는 사용자 pi의 환경 (예 : 모든 설정)이 올바르게 사용되고 pi가 사용자임을 확인합니다.

-c 옵션은 다음 행이 실행될 명령이고 따옴표 안의 부분 ( '/ usr / bin / tightvncserver : 1')이 명령임을 선언합니다.

이 경우 명령은 / usr / bin 디렉토리에있는 tightvncserver 파일을 실행하며 데스크탑 세션 1 (: 1)을 시작하도록 지정합니다.

이를 위해 다음 명령으로 rc.local 파일을 편집합니다.

sudo nano /etc/rc.local

파일을 다음과 같이 보이도록 행에 추가하십시오.

#!/bin/sh -e
#
# 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.

# Print the IP address
_IP=$(hostname -I) || true
if [ "$_IP" ]; then
  printf "My IP address is %s\n" "$_IP"
fi

# Start tightvncserver
su - pi -c '/usr/bin/tightvncserver :1'

exit 0

또한 파일에 독자적인 의견을 추가하여 향후 독자에게 진행 상황을 알릴 수 있습니다.

그게 다야. 이제 재부팅하여 Pi가 부팅 될 때 서비스가 시작되는지 테스트 할 수 있습니다.

위의 소리가 약간 길어지면 여기 에서 더 완벽한 추론을 확인 하십시오 .


그것은 나를 위해 작동하지 않습니다.
카멜레온

답은 Raspbian의 'Wheezy'버전 용으로 작성되었습니다. 이후 버전 ( 'Jessie'와 (I 's Presume) 'Stretch')은 기본 방법이 다릅니다. 다른 방법 은 여기 를 참조 하십시오 .
d3noob

5

시작하기 전에 Pi가 이더넷 \ wifi를 통해 인터넷 \ 네트워크에 연결되어 있는지 확인하십시오.

터미널을 열고 다음 명령을 입력하십시오.

원격 연결을위한 Pi IP 주소 가져 오기 (나중에 사용하기 위해)

hostname -I

TightVncServer 설치

sudo apt-get update
sudo apt-get install tightvncserver
tightvncserver

처음 실행할 때 비밀번호를 입력하고 확인해야합니다. 보기 전용 비밀번호를 입력 할 필요가 없습니다.

Pi 부팅시 서비스로 자동 시작을 구성하려면

nano (텍스트 편집기)를 열어 Tight VNC 서버 sudo nano /etc/init.d/tightvncserver 를 자동 시작하는 파일을 작성하십시오.

다음을 입력하십시오 (또는 복사하여 붙여 넣기 ).

#!/bin/sh
# /etc/init.d/tightvncserver
# Set the VNCUSER variable to the name of the user to start tightvncserver under
VNCUSER='pi'
case "$1" in
  start)
    su $VNCUSER -c '/usr/bin/tightvncserver :1'
    echo "Starting TightVNC server for $VNCUSER"
    ;;
  stop)
    pkill Xtightvnc
    echo "Tightvncserver stopped"
    ;;
  *)
    echo "Usage: /etc/init.d/tightvncserver {start|stop}"
    exit 1
    ;;
esac
exit 0

동일한 파일 이름을 유지하려면 Ctrl + x를 누른 다음 y를 눌러 저장하고 Enter를 누르십시오.

이 파일의 권한을 편집하여 실행 가능하고 활성화하십시오.

sudo chmod 755 /etc/init.d/tightvncserver
sudo update-rc.d tightvncserver defaults

sudo 재부팅을 테스트하기 위해 재부팅

OS 용 vnc 클라이언트를 설치하고 Pi가 재부팅되면 연결을 시도하십시오!

Windows의 경우 : 예를 들어 TightVNC 클라이언트 . 서버를 설치할 필요가 없습니다.

이 게시물 상단의 IP 주소를 사용하여 VNC 클라이언트 연결을 시작하십시오 . 귀하의 IP 주소를 변경하십시오. 여러 인터넷 게시물의 포트 번호는 2 자리로만 표시됩니다. 이것은 짧은 편이며 위의 스크립트를 사용하는 경우 pi가 포트 1에서 실행 중이면 590 1 을 사용해야합니다 . 2이면 590 2

192.168.1.123:5901

전체 화면이 표시되지 않는 한 귀하의 솔루션이 완벽하게 작동합니다. 전체 화면을 얻으려면 어떻게해야합니까? ( vncserver -geometry 1366x768 -depth 24 -dpi 96. 나는 전체 화면을 얻기 전에 그 명령을 사용했다. 코드에 줄을 추가하는 방법이 있습니까?)
opu 웃 11/17/16

@opu 웃 라인 su $VNCUSER -c '/usr/bin/tightvncserver :1'은 당신이 말하는 명령을 실행하는 것입니다. 해당 줄의 끝에 옵션을 추가하면 다음과 같은 결과가 나타납니다.su $VNCUSER -c '/usr/bin/tightvncserver :1' -geometry 1366x768 -depth 24 -dpi 96
Trent

이것이 작동하지 않으면 어떻게 디버깅합니까? pi 사용자 명령 줄에서 tightvncserver를 실행하면 시작되어 원격으로 접속할 수 있지만이 솔루션이나 /etc/rc.local 솔루션을 사용하여 자동 시작되지는 않습니다.
Alan McDonley
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.