Tengo un Raspberry Pi 2 y he estado siguiendo la publicación en Raspberrypi.org pero Tight VNC Server no se inicia al reiniciar. No parece haber ningún error.
¿Cómo consigo que TightVncServer se inicie en el reinicio de Pi?
Tengo un Raspberry Pi 2 y he estado siguiendo la publicación en Raspberrypi.org pero Tight VNC Server no se inicia al reiniciar. No parece haber ningún error.
¿Cómo consigo que TightVncServer se inicie en el reinicio de Pi?
Respuestas:
Para hacer esto, puede usar un poco de inteligencia de Linux.
Nuestra primera tarea será editar el archivo /etc/rc.local. Este archivo puede contener comandos que se ejecutan al inicio. Si miramos el archivo podemos ver que ya hay pocas entradas allí;
#!/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
El primer conjunto de líneas con una marca hash (#) delante de ellos son comentarios. Estos son solo para explicar lo que le está sucediendo a alguien que lee el archivo.
Las líneas de código hacia la parte inferior claramente tienen algo que ver con la dirección IP de la computadora. De hecho, son una secuencia de comandos corta que verifica si Raspberry Pi tiene una dirección IP y, si la tiene, la imprime. Si recuerda, puede ver la dirección IP impresa en la pantalla cuando el Pi se inicia así
My IP address is 10.1.1.8
Raspbian GNU/Linux 7 raspberrypi tty1
raspberrypi login:
¡Este script en rc.local es el código responsable de imprimir la dirección IP!
Agregaremos el siguiente comando en rc.local;
su - pi -c '/usr/bin/tightvncserver :1'
Este comando cambia al usuario para que sea el usuario 'pi' con su - pi. El su significa 'cambiar usuario', el guión (-) asegura que el entorno del usuario pi (como todas sus configuraciones) se usa correctamente y pi es el usuario.
La opción -c declara que la siguiente parte de la línea será el comando que se ejecutará y la parte dentro de las comillas ('/ usr / bin / tightvncserver: 1') es el comando.
El comando en este caso ejecuta el archivo tightvncserver que se encuentra en el directorio / usr / bin y especifica que debemos iniciar la sesión de escritorio 1 (: 1).
Para hacer esto, editaremos el archivo rc.local con el siguiente comando;
sudo nano /etc/rc.local
Agregue nuestras líneas para que el archivo tenga el siguiente aspecto;
#!/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
(También podemos agregar nuestro propio comentario al archivo para que los futuros lectores sepan qué está pasando)
Eso debería ser. Ahora debería poder probar que el servicio se inicia cuando se inicia el Pi reiniciando.
Si lo anterior suena un poco largo, no dude en consultar un razonamiento más completo aquí .
Antes de comenzar, asegúrese de que su Pi esté conectado a Internet \ red a través de Ethernet \ wifi.
Abra la Terminal e ingrese los siguientes comandos:
Obtenga la dirección IP de Pi para la conexión remota (para usar más adelante)
hostname -I
Instalar TightVncServer
sudo apt-get update
sudo apt-get install tightvncserver
tightvncserver
La primera vez que se ejecuta, debe ingresar una contraseña y verificarla. No es necesario ingresar una contraseña de solo lectura.
Para configurar el inicio automático como un servicio cuando se inicia el Pi:
Abra nano (editor de texto) para crear un archivo para iniciar automáticamente Tight VNC Server sudo nano /etc/init.d/tightvncserver
Escriba lo siguiente (o copie y pegue ):
#!/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
Presione Ctrl + x, luego y para guardar e Enter para mantener el mismo nombre de archivo.
Edite los permisos de este archivo para que sea ejecutable y activo:
sudo chmod 755 /etc/init.d/tightvncserver
sudo update-rc.d tightvncserver defaults
Reiniciar para probar el reinicio de sudo
¡Instale el cliente vnc para su sistema operativo e intente conectarse una vez que Pi se haya reiniciado!
Para Windows: TightVNC Client, por ejemplo . No es necesario instalar el servidor.
Inicie VNC Client Connect utilizando la dirección IP de la parte superior de esta publicación. Cambia la dirección IP por la tuya. El número de puerto en una serie de publicaciones de Internet solo aparece como 2 dígitos. Esto es breve y si está utilizando el script anterior, su pi se está ejecutando en el puerto 1, entonces debe usar 590 1 . Si 2, entonces 590 2 etc.
192.168.1.123:5901
vncserver -geometry 1366x768 -depth 24 -dpi 96
. Utilicé ese comando antes para obtener la pantalla completa. ¿Hay alguna forma de agregar la línea en su código?)
su $VNCUSER -c '/usr/bin/tightvncserver :1'
es la que ejecuta el comando al que te refieres. Simplemente agregue las opciones al final de esa línea, lo que dará como resultado algo asísu $VNCUSER -c '/usr/bin/tightvncserver :1' -geometry 1366x768 -depth 24 -dpi 96