Mam Raspberry Pi 2 i śledzę post na Raspberrypi.org, ale Tight VNC Server nie uruchamia się ponownie. Wydaje się, że nie ma żadnego błędu.
Jak sprawić, by TightVncServer uruchomił się przy Pi Reboot?
Mam Raspberry Pi 2 i śledzę post na Raspberrypi.org, ale Tight VNC Server nie uruchamia się ponownie. Wydaje się, że nie ma żadnego błędu.
Jak sprawić, by TightVncServer uruchomił się przy Pi Reboot?
Odpowiedzi:
Aby to zrobić, możesz użyć odrobiny sprytu w Linuksie.
Naszym pierwszym zadaniem będzie edycja pliku /etc/rc.local. Ten plik może zawierać polecenia uruchamiane podczas uruchamiania. Jeśli spojrzymy na plik, zobaczymy, że jest tam już niewiele wpisów;
#!/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
Pierwszy zestaw linii ze znakiem krzyżyka (#) przed nimi to komentarze. Są one po to, aby wyjaśnić, co dzieje się z kimś czytającym plik.
Wiersze kodu na dole wyraźnie mają związek z adresem IP komputera. W rzeczywistości są one krótkim skryptem, który sprawdza, czy Raspberry Pi ma adres IP, a jeśli tak, drukuje go. Jeśli sobie przypomnisz, możesz zobaczyć adres IP wydrukowany na ekranie, gdy Pi uruchamia się w ten sposób
My IP address is 10.1.1.8
Raspbian GNU/Linux 7 raspberrypi tty1
raspberrypi login:
Ten fragment skryptu w rc.local jest kodem odpowiedzialnym za wydrukowanie adresu IP!
Dodamy następujące polecenie do rc.local;
su - pi -c '/usr/bin/tightvncserver :1'
To polecenie przełącza użytkownika na użytkownika „pi” z su - pi. Su oznacza „przełącz użytkownika”, myślnik (-) zapewnia, że środowisko użytkownika pi (podobnie jak wszystkie jego ustawienia) jest używane poprawnie, a pi jest użytkownikiem.
Opcja -c deklaruje, że następnym elementem wiersza będzie polecenie, które zostanie uruchomione, a część wewnątrz znaków cudzysłowu („/ usr / bin / tightvncserver: 1”) to polecenie.
Polecenie w tym przypadku wykonuje plik tightvncserver, który znajduje się w katalogu / usr / bin i określa, że powinniśmy rozpocząć sesję pulpitu 1 (: 1).
W tym celu dokonamy edycji pliku rc.local za pomocą następującego polecenia;
sudo nano /etc/rc.local
Dodaj nasze wiersze, aby plik wyglądał następująco;
#!/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
(Możemy również dodać własny komentarz do pliku, aby przyszli czytelnicy wiedzieli, co się dzieje)
To powinno być to. Powinieneś teraz być w stanie przetestować, czy usługa uruchamia się, gdy Pi uruchamia się przez ponowne uruchomienie.
Jeśli powyższe wydaje się nieco zbyt rozwlekłe, zachęcamy do zapoznania się z pełniejszym uzasadnieniem tutaj .
Przed rozpoczęciem upewnij się, że Twój Pi jest podłączony do Internetu \ sieci przez Ethernet \ Wi-Fi.
Otwórz terminal i wprowadź następujące polecenia:
Uzyskaj adres IP Pi dla połączenia zdalnego (do użytku później)
hostname -I
Zainstaluj TightVncServer
sudo apt-get update
sudo apt-get install tightvncserver
tightvncserver
Przy pierwszym uruchomieniu należy podać hasło i je zweryfikować. Nie trzeba wprowadzać hasła tylko do widoku.
Aby skonfigurować automatyczne uruchamianie jako usługę podczas uruchamiania Pi:
Otwórz nano (edytor tekstu), aby utworzyć plik do automatycznego uruchomienia Tight VNC Server sudo nano /etc/init.d/tightvncserver
Wpisz następujące polecenie (lub skopiuj i wklej ):
#!/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
Naciśnij Ctrl + x, następnie y, aby zapisać i Enter, aby zachować tę samą nazwę pliku.
Edytuj uprawnienia do tego pliku, aby był wykonywalny i aktywny:
sudo chmod 755 /etc/init.d/tightvncserver
sudo update-rc.d tightvncserver defaults
Uruchom ponownie, aby przetestować ponowne uruchomienie sudo
Zainstaluj klienta vnc dla swojego systemu operacyjnego i spróbuj połączyć się po ponownym uruchomieniu Pi!
W systemie Windows: na przykład klient TightVNC . Nie ma potrzeby instalowania serwera.
Uruchom VNC Client Connect, używając adresu IP z góry tego postu. Zmień adres IP na swój. Numer portu w wielu postach internetowych jest podany tylko jako 2 cyfry. To krótka ręka i jeśli używasz powyższego skryptu, twoje pi działa na porcie 1, powinieneś użyć 590 1 . Jeśli 2, to 590 2 itd.
192.168.1.123:5901
vncserver -geometry 1366x768 -depth 24 -dpi 96
. Użyłem tego polecenia wcześniej, aby uzyskać pełny ekran. Czy jest jakiś sposób, aby dodać wiersz w kodzie?)
su $VNCUSER -c '/usr/bin/tightvncserver :1'
uruchamia polecenie, o którym mowa. Po prostu dołącz opcje na końcu tego wiersza, co da w wyniku coś w rodzajusu $VNCUSER -c '/usr/bin/tightvncserver :1' -geometry 1366x768 -depth 24 -dpi 96