Eu tenho um Raspberry Pi 2 e tenho seguido a publicação no Raspberrypi.org, mas o Tight VNC Server não inicia na reinicialização. Não parece haver nenhum erro.
Como faço para o TightVncServer iniciar na reinicialização do Pi?
Eu tenho um Raspberry Pi 2 e tenho seguido a publicação no Raspberrypi.org, mas o Tight VNC Server não inicia na reinicialização. Não parece haver nenhum erro.
Como faço para o TightVncServer iniciar na reinicialização do Pi?
Respostas:
Para fazer isso, você pode usar um pouco de inteligência do Linux.
Nossa primeira tarefa será editar o arquivo /etc/rc.local. Este arquivo pode conter comandos que são executados na inicialização. Se olharmos para o arquivo, podemos ver que já existem poucas entradas;
#!/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
O primeiro conjunto de linhas com uma marca de hash (#) na frente deles são comentários. Eles servem apenas para explicar o que está acontecendo com alguém que está lendo o arquivo.
As linhas de código na parte inferior claramente têm algo a ver com o endereço IP do computador. Na verdade, eles são um script curto que verifica se o Raspberry Pi tem um endereço IP e, se tiver, ele o imprime. Se você se lembrar, poderá ver o endereço IP impresso na tela quando o Pi for inicializado dessa maneira
My IP address is 10.1.1.8
Raspbian GNU/Linux 7 raspberrypi tty1
raspberrypi login:
Esse trecho de script em rc.local é o código responsável pela impressão do endereço IP!
Nós adicionaremos o seguinte comando no rc.local;
su - pi -c '/usr/bin/tightvncserver :1'
Este comando muda o usuário para o usuário 'pi' com su-pi. O su significa 'switch user' o traço (-) garante que o ambiente do usuário pi (como todas as suas configurações) seja usado corretamente e pi seja o usuário.
A opção -c declara que a próxima parte da linha será o comando que será executado e a parte dentro das aspas ('/ usr / bin / tightvncserver: 1') é o comando.
O comando nesse caso executa o arquivo tightvncserver que está no diretório / usr / bin e especifica que devemos iniciar a sessão 1 da área de trabalho (: 1).
Para fazer isso, editaremos o arquivo rc.local com o seguinte comando;
sudo nano /etc/rc.local
Adicione nossas linhas para que o arquivo se pareça com o seguinte;
#!/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
(Também podemos adicionar nosso próprio comentário ao arquivo para que futuros leitores saibam o que está acontecendo)
Deve ser isso. Agora você deve poder testar se o serviço é iniciado quando o Pi é inicializado pela reinicialização.
Se o item acima parecer um pouco longo, fique à vontade para conferir um raciocínio mais completo aqui .
Antes de iniciar, verifique se o seu Pi está conectado à Internet \ rede via Ethernet \ wifi.
Abra o Terminal e insira os seguintes comandos:
Obter o endereço IP do Pi para conexão remota (para uso posterior)
hostname -I
Instale o TightVncServer
sudo apt-get update
sudo apt-get install tightvncserver
tightvncserver
A primeira vez que isso é executado, você deve digitar uma senha e verificá-la. Não há necessidade de inserir uma senha somente para visualização.
Para configurar o início automático como um serviço quando o Pi inicializar:
Abra o nano (editor de texto) para criar um arquivo para iniciar automaticamente o Tight VNC Server sudo nano /etc/init.d/tightvncserver
Digite o seguinte (ou copie e cole ):
#!/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
Pressione Ctrl + x, y para salvar e Enter para manter o mesmo nome de arquivo.
Edite as permissões deste arquivo para torná-lo executável e ativo:
sudo chmod 755 /etc/init.d/tightvncserver
sudo update-rc.d tightvncserver defaults
Reinicialize para testar a reinicialização do sudo
Instale o cliente vnc para o seu sistema operacional e tente conectar-se quando o Pi for reiniciado!
Para Windows: Cliente TightVNC, por exemplo . Não há necessidade de instalar o servidor.
Inicie o VNC Client Connect usando o endereço IP na parte superior desta postagem. Mude o endereço IP para o seu. O número da porta em várias postagens da Internet é listado apenas como 2 dígitos. Isso é pouco, e se você estiver usando o script acima, seu pi está sendo executado na porta 1, então você deve usar 590 1 . Se 2, então 590 2 etc.
192.168.1.123:5901
vncserver -geometry 1366x768 -depth 24 -dpi 96
. Eu usei esse comando antes de obter tela cheia Existe alguma maneira de adicionar a linha em seu código.?)
su $VNCUSER -c '/usr/bin/tightvncserver :1'
é o que executa o comando ao qual você está se referindo. Simplesmente adicione as opções para o fim dessa linha, que vai resultar em algo comosu $VNCUSER -c '/usr/bin/tightvncserver :1' -geometry 1366x768 -depth 24 -dpi 96