Raspberry Pi 2'de TightVncServer'ı otomatik başlat


11

Bir Raspberry Pi 2 var ve Raspberrypi.org yazı takip var ama Sıkı VNC Sunucusu yeniden başlatma başlamıyor. Herhangi bir hata yok gibi görünüyor.

TightVncServer'ı Pi Reboot'ta nasıl başlatabilirim?


Henüz bir cevap gönderemiyorum, ancak burada adafruit'te belgelenen pi 3 B üzerinde çalıştığım basit bir yöntem var: learn.adafruit.com/…
Steven Evers

Yanıtlar:


10

Bunu yapmak için biraz Linux zekası kullanabilirsiniz.

İlk görevimiz /etc/rc.local dosyasını düzenlemek olacak. Bu dosya, başlangıçta çalıştırılan komutlar içerebilir. Dosyaya bakarsak, içinde zaten birkaç giriş olduğunu görebiliriz;

#!/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

Önlerinde karma işareti (#) olan ilk satır kümesi yorumlardır. Bunlar sadece dosyayı okuyan birine neler olduğunu açıklamak için var.

En alta doğru kod satırlarının, bilgisayarın IP adresiyle bir ilgisi olduğu açıktır. Aslında, Raspberry Pi'nin bir IP adresine sahip olup olmadığını kontrol eden kısa bir komut dosyasıdır ve varsa yazdırır. Hatırlarsanız, Pi böyle açıldığında IP adresini ekranda görebilirsiniz.

My IP address is 10.1.1.8

Raspbian GNU/Linux 7 raspberrypi tty1

raspberrypi login:

Rc.local'daki bu komut dosyası IP adresini yazdırmaktan sorumlu koddur!

Rc.local içine aşağıdaki komutu ekleyeceğiz;

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

Bu komut kullanıcıyı su - pi ile 'pi' kullanıcısı olarak değiştirir. Su, 'kullanıcı değiştir' kısaltmasıdır (-) kullanıcı pi ortamının (tüm ayarları gibi) doğru şekilde kullanıldığından ve pi kullanıcı olduğundan emin olur.

-C seçeneği, satırın bir sonraki parçasının çalıştırılacak komut olacağını ve tırnak işaretleri içindeki kısmın ('/ usr / bin / tightvncserver: 1') komut olduğunu bildirir.

Bu durumda komut, / usr / bin dizininde bulunan tightvncserver dosyasını yürütür ve masaüstü oturumu 1'i (: 1) başlatmamız gerektiğini belirtir.

Bunu yapmak için rc.local dosyasını aşağıdaki komutla düzenleyeceğiz;

sudo nano /etc/rc.local

Dosyamızın aşağıdaki gibi görünmesi için satırlarımızı ekleyin;

#!/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

(Gelecekteki okuyucuların neler olduğunu bilmesini sağlamak için dosyaya kendi yorumumuzu da ekleyebiliriz)

Öyle olmalı. Şimdi Pi yeniden başlatıldığında hizmetin başladığını test edebilmelisiniz.

Yukarıdakiler biraz uzun soluk geliyorsa, burada daha eksiksiz bir muhakeme kontrol etmekten çekinmeyin .


Benim için çalışmıyor.
Chameleon

Cevap Raspbian'ın 'Wheezy' versiyonu için yazılmıştır. Daha sonraki sürümde ('Jessie' ve (sanırım) 'Stretch') farklı bir varsayılan yöntem var. Alternatif bir yaklaşım için buraya bakınız .
d3noob

5

Başlamadan önce Pi'nizin Ethernet \ wifi üzerinden internet \ ağına bağlı olduğundan emin olun.

Terminal'i açın ve aşağıdaki komutları girin:

Uzaktan bağlantı için Pi IP Adresini alın (daha sonra kullanmak için)

hostname -I

TightVncServer'ı yükleyin

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

Bu ilk çalıştırıldığında bir parola girip doğrulamanız gerekir. Yalnızca görüntüleme şifresi girmenize gerek yoktur.

Pi önyükleme yaparken otomatik başlatmayı bir hizmet olarak yapılandırmak için:

Otomatik olarak başlatılacak bir dosya oluşturmak için nano'yu (metin düzenleyici) açın Tight VNC Server sudo nano /etc/init.d/tightvncserver

Aşağıdakileri yazın (veya kopyalayıp yapıştırın ):

#!/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

Kaydetmek için Ctrl + x, sonra y tuşlarına ve aynı dosya adını korumak için Enter tuşuna basın.

Bu dosyanın yürütülebilir ve etkin olmasını sağlamak için izinlerini düzenleyin:

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

Sudo yeniden başlatmayı test etmek için yeniden başlat

İşletim sisteminiz için vnc istemcisini kurun ve Pi yeniden başlatıldıktan sonra bağlanmaya çalışın!

Örneğin Windows için: TightVNC Client . Sunucu kurmanıza gerek yok.

VNC Client Connect'i bu yazının üst kısmındaki IP adresini kullanarak başlatın . Kendi IP adresinizi değiştirin. Bazı internet yayınlarındaki bağlantı noktası numarası yalnızca 2 basamak olarak listelenir. Bu kısa eldir ve yukarıdaki komut dosyasını kullanıyorsanız pi'niz bağlantı noktası 1'de çalışıyorsa, 590 1'i kullanmalısınız . 2 ise, 590 2 vb.

192.168.1.123:5901

Tam ekran alamıyorum dışında çözümünüz benim için mükemmel çalışıyor. Tam ekranı nasıl alabilirim? ( vncserver -geometry 1366x768 -depth 24 -dpi 96. Daha önce tam ekran almak için bu komutu kullandım. Kodu kodunuza eklemenin bir yolu var mı?)
opu 웃

@opu 웃 Satır su $VNCUSER -c '/usr/bin/tightvncserver :1', başvurduğunuz komutu çalıştıran şeydir. Sadece bu satırın sonuna seçenekleri ekleyin, bu da şu gibi bir sonuçla sonuçlanacaktırsu $VNCUSER -c '/usr/bin/tightvncserver :1' -geometry 1366x768 -depth 24 -dpi 96
Trent

Bu işe yaramazsa nasıl hata ayıklayabilirim? Pi kullanıcı komut satırında tightvncserver çalıştırırsam, başlar ve uzaktan kumanda edebilirim, ancak bunu veya /etc/rc.local çözümünü kullanarak otomatik olarak başlamaz.
Alan McDonley
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.