Osckar
Posts: 11
Joined: Tue Jan 05, 2016 8:39 am

Inicio automático de aplicaciones en RaspBerry Pi 2

Wed Jan 06, 2016 11:45 am

Hola, estoy tratando de arrancar el servidor de red Tighty VNC de forma automática al iniciar el SO NOOBS en una RaspBerry Pi 2 y no encuentro la manera.
Quiero hacer esto para no depender de una pantalla con HDMI, que no están tan extendidas como las VGA, y así me conecto desde mi portátil y no necesito de una pantalla externa para poder usar la tarjeta.

Expongo los pasos dados hasta ahora sin obtener ningún resultado (literalmente, la RaspBerry Pi arranca omitiendo completamente las órdenes de ejecución que he introducido):

Instalo el servidor Tighty VNC y lo ejecuto desde el Escritorio del entorno gráfico sin problemas, me conecto desde mi portátil y puedo acceder y manejar la RaspBerry Pi remotamente por red.

El problema viene cuando intento arrancar de forma automática el servidor al iniciarse RaspBian:

Método 1: Añadir la orden de arranque en 'rc.local'.
RaspBian solicita permisos de root, se los doy y añado la orden sin problemas, pero al reniciar la tarjeta es como si no existiese.

Método 2: Añadir archivo bash en la carpeta 'init.d'. Añado un archivo bash con la orden de arranque del servidor VNC, lo pruebo desde Terminal y funciona perfectamente, pero al reiniciar no se ejecuta, permanece en el ostracismo más absoluto.

Método 3: Configurar en CronTab la ejecución de otro archivo bash cada 10 minutos. Este bash comprueba si un proceso con la cadena 'VNC' está en ejecución, si es así finaliza el bash, sino lo ejecuta.
Mismo resultado que con los anteriores métodos: nada de nada.

Método 4: Introduje la orden de solicitar datos de acceso en 'rc.local' y ¡Funcionó! ¡Me pide los datos de usuario y contraseña! :P lo malo es que ahora no sale de esa pantalla :-(, introduzco los datos y vuelve a cargarse la misma pantalla, lo que de facto significa que no tengo acceso al sistema.

¿Método 5? He visto en la página de UroBoros http://www.rpi.uroboros.es/servers.html#5 que comenta algo de los puertos, pero si el servidor VNC ya no arranca no creo que sea ese el problema.

Llegado a este punto ya no sé que más hacer y despues de todas estas pruebas me inclino a pensar en que la propia RaspBerry Pi, RaspBian o ambos no permitan el inicio automático ni de órdenes ni de aplicaciones.

¿Alguna idea sobre esto o es como como me parece a mí?

Gracias y feliz año 2016 y felices reyes.

TAGS: Inicio / Iniciar / Ejecutar / Ejecución / Arrancar / Arranque / Automático / Automáticamente.

User avatar
actkk2000
Posts: 1309
Joined: Wed Apr 02, 2014 3:22 am

Re: Inicio automático de aplicaciones en RaspBerry Pi 2

Wed Jan 06, 2016 12:49 pm

Si usas Windows puedes conectarte por escritorio remoto a través de xrdp, la instalación es muy sencilla y se carga automáticamente al iniciar la Raspberry:
http://bitagorin.blogspot.com.ar/2015/1 ... -pi-2.html

Slds!
Robot +Camara +Sensores +Encoder +Servo +Matriz8x8 +Joystick:
https://www.raspberrypi.org/forums/viewtopic.php?f=76&t=130470

hoopdreams
Posts: 313
Joined: Mon Mar 23, 2015 7:51 pm

Re: Inicio automático de aplicaciones en RaspBerry Pi 2

Wed Jan 06, 2016 4:28 pm

No te inclines a pensar que el problema sea la Raspberry Pi o Raspbian, creo que por comodidad una gran mayoría accedemos por VNC o SSH (yo personalmente esto más) y si es posible.

Copia el script que añades a init.d aquí para que veamos que está correcto. Después de guardar el script tienes que:

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

Un saludo.
https://github.com/ikergarcia

Osckar
Posts: 11
Joined: Tue Jan 05, 2016 8:39 am

Re: Inicio automático de aplicaciones en RaspBerry Pi 2

Wed Jan 06, 2016 7:02 pm

=:-0 ¡Que respuestas tan rápidas! ¡¡Vais a la velocidad de la RaspBerry Pi!! :o :o :o
Estos días estaré liado, pero intentaré subir los archivos y probar lo que me indicais en cuanto pueda.

¡¡ Muchas Gracias !!

Osckar
Posts: 11
Joined: Tue Jan 05, 2016 8:39 am

Re: Inicio automático de aplicaciones en RaspBerry Pi 2

Sat Jan 30, 2016 9:40 am

Hola, he creado el archivo bash "vnc.sh" dentro de /etc/init.d y le he dado los permisos y "subido" con update-rc y sigue dando el mismo error.
He copiado, por si acaso, un archivo bash ya existente y lo he modificado por si ese era el problema pero no, da igual como lo cree siempre se produce el error de LSB.

Adjunto pantallazo con las instrucciones y archivo con la copia del contenido del bash por si está mal. He tenido que subirlos en formato jpg ya que el foro no me permitía ningún otro formato de texto (ni rtf, odt, doc ni pdf).

Gracias.
Attachments
Pantallazo error Script Bash VNC_.png
Pantallazo error Script Bash VNC_.png (31.33 KiB) Viewed 23485 times
Archivo Bash 'vnc.sh'.jpg
Archivo Bash 'vnc.sh'.jpg (53.07 KiB) Viewed 23485 times

hoopdreams
Posts: 313
Joined: Mon Mar 23, 2015 7:51 pm

Re: Inicio automático de aplicaciones en RaspBerry Pi 2

Sat Jan 30, 2016 11:58 am

Buenas,

Creo que el error se debe a que el script está incompleto.

Al inicio le falta algo como esto:

#!/bin/bash
### BEGIN INIT INFO
# Provides: ...
# Required-Start: $syslog
# Required-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: ...
# Description: ...
#
### END INIT INFO

Además de esto, yo añadiría más cosas para que inicie con los parámetros que tú quieras. Ejemplo con el script completo: http://elinux.org/RPi_VNC_Server

Espero que funcione.

Un saludo.
https://github.com/ikergarcia

Osckar
Posts: 11
Joined: Tue Jan 05, 2016 8:39 am

Re: Inicio automático de aplicaciones en RaspBerry Pi 2

Sun Feb 07, 2016 4:51 pm

Buenas, seguimos adelante con mi culebrón particular...
Después de seguir los consejos e indicaciones de las buenas gentes del foro he conseguido ¡por fin! que el script se ejecute sin errores de formato LSB ¡aleluya hermanos y hermanas!
La mala noticia es que después de darle permisos con chmod e incluirlo en el inicio con update-rc.d he probado el script ejecutándolo desde Terminal, y da error de Permiso Denegado de acceso a /usr/bin, que es donde está instalado el enlace a Tight VNC. Así que de nuevo el destino juega conmigo: Creé un archivo con permisos de root en una carpeta con permisos de root, le dí el formato correcto a un script Bash (cosa que no había hecho en mi vida), le dí permisos de ejecución y lo incluí en la lista de inicio del sistema así que... ¿Qué es lo que me falta ahora: Derrotar al Minotauro y luego a Medusa a mano desnuda o quizás a los dos a la vez?

Os dejó el código del script:

Code: Select all

#! /bin/sh
### BEGIN INIT INFO
# Provides:          VNC-2
# Enconding: UTF-8
# Required-Start:
# Required-Stop:
# Should-Start:
# Default-Start:     S
# Default-Stop:
# Short-Description: Prueba de inicio autómatico del servidor Tight VNC.
# Description:       Se trata de arrancar automáticamente el servidor
#                    Tight VNC para su acceso remoto para evitar tener
#                    que utilizar una pantalla, teclado y ratón propios.
#
#  X-Interactive: true 
### END INIT INFO

PATH=/etc; /etc/init.d; /usr; /usr/bin
./usr/bin/vncserver
exit
Muy importante: Poner 'exit' al finalizar el script y en la línea de cabecera el enconding que sea UTF-8.
El parámetro 'X-Interactive: true' establece que el programa que se ejecuta en el script tendrá ejecución interactiva con el usuario, como, por ejemplo, solicitar una contraseña, cosa que hace Tight VNC. Lo he puesto por si acaso, pero no sé si es necesario.
'Provides' identifica al script y creo que también se utilizar para pasarle parámetros de ejecución, ya que no tiene por que tener el mismo nombre que el script.
Al igual que en los nombres de archivos, no puede haber dos scripts con el mismo nombre, de ahí que haya llamado 'vnc-2.sh' tanto al archivo como en el parámetro.
Más información de los parámetros LSB de un archivo script Bash en: 1 – Descripción de los parámetros (en inglés) del Script en lenguaje Bash con el formato LSB: https://wiki.debian.org/LSBInitScripts (en inglés).

Muchas gracias por vuestra ayuda, seguiremos investigando...

Osckar
Posts: 11
Joined: Tue Jan 05, 2016 8:39 am

Re: Inicio automático de aplicaciones en RaspBerry Pi 2

Fri Mar 18, 2016 2:17 pm

Buenas, no ha habido manera de que VNCServer arranque de manera automática. Sigo pensando que tiene que haber alguna relación con los permisos de inicio por red. Puedo entrar perfectamente desde SSH con Putty y luego arranco VNCServer simplemente con la orden 'vncserver', tal cual, sin opciones ni parámetros ni nada más.

Así pues, es suficiente con conectar mi RaspBerry a mi portátil sin necesidad de utilizar monitor, ni teclado y ratón... solo mi RB, mi portátil y yo...

¡Vamos allá!

Osckar
Posts: 11
Joined: Tue Jan 05, 2016 8:39 am

Re: Inicio automático de aplicaciones en RaspBerry Pi 2

Sun Apr 03, 2016 9:31 am

Bueno, después de más de cuatro meses de penurias y fustración por fin puedo decir que he conseguido hacer cumbre, he tenido que deshacerme del minotauro y de Medusa en la travesía, pero ya está, he alcanzado el objetivo y además puedo contarlo :D .

Tras romperme la cabeza y descubrir, parafraseando al gran inventor Thomas Edison, 99 formas de como no se enciende una bombilla, encontré la forma de poder iniciar un programa automáticamente al inico del SO NOOBS.

Como suele ocurrir casi como norma general en prácticamente cualquier proyecto, al final encontré la solución de pura chiripa mientras buscaba información sobre otra cosa y en la que, de forma totalmente casual, alguién explicaba un script con el dichoso formato LSB para ejecutar otro programa. Al fijarme vi que había una pequeñísima diferencia entre su script y el mío...

Tras repasarlo un par de veces y viendo que no era mucho trabajo me dije que por qué no, ya de perdidos...
Así que modifiqué mi script y simplemente ¡funcionó! Hay estaba el cliente solicitando la contraseña de acceso a la RB conectada por red. Como no me lo creía ni un ápice volví a reiniciarla un par de veces, y sí, podía conectarme directamente por red de forma remota, sin pantalla, ni teclado y ratón.

Debería haber sido un momento mágico, haberme envuelto una luz blanca y sentirme en el paraíso, pero no fue así, después de tantos quebraderos de cabeza, de que la realidad no se ajustara a la lógica y, especialmente, descubrir que el problema era una absoluta chorrada, provocó que en vez de sentirme uno con el universo se me quedara una cara de *$%*& de tres pares de narices.

Por que el asunto no es que escribiese mal alguna instrucción, que el formato del script estuviese mal o que el archivo no estuviese en el sitio correcto, ¡que va! el gran y profundo problema es que las instrucciones no llevaban la p**** orden 'sudo' delante...
Así es, tengo un script con el formato LSB, almacenado en un directorio de sistema con los permisos de creación y ejecución que he incluido con las correspondientes ordenes root en el arranque del sistema, pero no, no es suficiente para Linux.
No basta con que el archivo esté guardado en un directorio de sistema y que esté incluido en la lista de programas de inicio, no, además en el script hay que ponerle que las ordenes se realizarán en modo root.
No basta con superar al Minotauro (carpeta init.d) y a la Medusa (update-rc) que aún por encima tienes que enfrentarte a ellos solo con las armas homologadas (formato LSB).

Así que miedito me da lo que esté por venir si para ejecutar un programa de forma automática hay que hacer todo esto, que será lo que habrá que hacer para conectarse a una base de datos o algo similar...

Bien, aquí dejo el relato sobre mi hazaña, agradecer a todos los que han colaborado y me han ayudado y apiadarme de aquellos infelices que tengan que enfrentarse a este reto.

¡Saludos!




COMO INICIAR DE FORMA AUTOMÁTICA UN PROGRAMA AL ARRANCAR RASPBERRY PI 2 (RB) CON EL SISTEMA OPERATIVO (SO) NOOBS
AVISO: El método aquí descrito puede provocar que el acceso a la tarjeta por red quede abierto y las conexiones creadas no son seguras.
Utilizar sin conexión a Internet y en modo de usuario estándar, nunca como SuperUsuario / Administrador (root).

Es responsabilidad particular de cada uno seguir los métodos aquí indicados, así como de las consecuencias que puedan derivar de su puesta en práctica.

OBJETIVO
En este documento se explica como arrancar el servidor de red Tight VNC de forma automática al iniciar el SO NOOBS en una RaspBerry Pi 2.

El objetivo es no tener que depender de una pantalla con HDMI, que no están tan extendidas como las VGA, ni tener que necesitar un teclado y un ratón propios para la tarjeta, con el espacio y puertos USB que ocupan.

El servidor de red Tight VNC permite conectarse remotamente a través de una red con la tarjeta RB desde un ordenador con un cliente de red, como VNC Viewer o VNC LAN.
Así, basta con conectar el portátil y la tarjeta con un cable de red y ya se puede acceder y trabajar con la RaspBerry Pi.

PROCESO
1 – Crear el archivo de script en Bash con el formato LSB (Linux Standard Base):
El LSB es un nuevo formato estándar para ficheros de sistema de Linux creado hace unos años.
Este nuevo estándar establece un formato para todos los archivos de sistema, incluidos los archivos de script Bash, o por bloques, los cuales deben llevar un encabezado y finalizar con la orden ‘exit’, al menos los archivos simples.
A mayores, estos encabezados disponen de sus propios parámetros e instrucciones, en exit solo parámetros numéricos.
Descripción de los parámetros (en inglés) del Script en lenguaje Bash con el formato LSB: https://wiki.debian.org/LSBInitScripts (en inglés).
Más información en https://es.wikipedia.org/wiki/Linux_Standard_Base

En el script Bash adjunto se muestra un archivo de script Bash con un formato básico de LSB, ya que “simplemente” se va a llamar a un programa.
Ver Adjunto.

2 – Añadir el archivo Bash en la carpeta '/etc/init.d': Se debe guardar el script en esta carpeta para que se inicie el servidor al arrancar el SO.
Consejo: En caso de dificultades una buena manera de crear el archivo Bash es copiar otro Bash existente en el directorio, cambiarle el nombre y modificarlo.

2.1 – Incluir el archivo Bash en la orden de arranque de NOOBS:
No basta con crear el archivo Bash en el directorio ‘/etc/init.d’, hay que incluirlo en los programas de inicio del SO con las siguientes instrucciones (sin las comillas):
‘sudo chmod 755 /etc/init.d/nombredetuscript’
‘sudo update-rc.d NombreDelScript defaults’


ADJUNTO: ARCHIVO SCRIPT BASH CON FORMATO LSB

Code: Select all

#! /bin/sh
### BEGIN INIT INFO
# Provides: VNC
# Enconding: UTF-8
# Required-Start: 
# Required-Stop: 
# Should-Start: 
# Default-Start: S
# Default-Stop: 
# Short-Description: Prueba de inicio automatica del servidor #Tight VNC.
# Description: Se desea arrancar automaticamente el servidor
#Tight VNC para su acceso remoto para evitar tener
#que utilizar una pantalla, teclado y raton propios.
#
# X-Interactive: true 
### END INIT INFO

sudo PATH=/etc; /etc/init.d; /usr; /usr/bin
sudo ./usr/bin/vncserver
exit 0
Nada de acentos, eñes ni símbolos especiales.
Muy importante: Poner 'exit' al finalizar el script y en la línea de cabecera el enconding que sea UTF-8, para que soporte diferentes idiomas, incluido el español.

El parámetro 'X-Interactive: true' establece que el programa que se ejecuta en el script tendrá ejecución interactiva con el usuario, como, por ejemplo, solicitar una contraseña, cosa que hace Tight VNC. Lo he puesto por si acaso, ya que no sé si es necesario.
'Provides' identifica al script y creo que también se utilizar para pasarle parámetros de ejecución, ya que no tiene por que tener el mismo nombre que el script.
Al igual que en los nombres de archivos, no puede haber dos scripts con el mismo nombre, de ahí que haya llamado 'vnc-2.sh' tanto al archivo como en el parámetro.

La clave es que pare arrancar el programa, cambiar de carpeta o cualquier instrucción a realizar debe llevar delante la orden ‘sudo’, sino NO funciona.

Más información de los parámetros LSB de un archivo script Bash en:

El parámetro 'X-Interactive: true' establece que el programa que se ejecuta en el script tendrá ejecución interactiva con el usuario, como, por ejemplo, solicitar una contraseña, cosa que hace Tight VNC. Lo he puesto por si acaso, pero no sé si es necesario.
'Provides' identifica al script y creo que también se utilizar para pasarle parámetros de ejecución, ya que no tiene por que tener el mismo nombre que el script.
Al igual que en los nombres de archivos, no puede haber dos scripts con el mismo nombre, de ahí que haya llamado 'vnc-2.sh' tanto al archivo como en el parámetro.

Más información de los parámetros LSB de un archivo script Bash en:
Descripción de los parámetros (en inglés) del Script en lenguaje Bash con el formato LSB: https://wiki.debian.org/LSBInitScripts (en inglés).
Más información en https://es.wikipedia.org/wiki/Linux_Standard_Base

NOTAS: La cuenta de SuperUsuario / Administrador (root) dispone de la contraseña. En este caso es la estándar de RB.

Etiquetas: Iniciar, inicio, arrancar, arranque, automático, automática, automáticamente.

hoopdreams
Posts: 313
Joined: Mon Mar 23, 2015 7:51 pm

Re: Inicio automático de aplicaciones en RaspBerry Pi 2

Sun Apr 03, 2016 11:30 am

Buenas,

Me alegra que lo hayas solucionado y que te pases a comentarlo. Cada uno es libre de hacer lo que quiera pero no me gusta los que preguntan y no vuelven a aparecer sin agradecer por lo menos, en cambio me encanta los que se quedan. Veo esto como una comunidad en la que todos intentamos ayudar a todos.

Por mi parte, me salté tu mensaje de febrero y vi el de marzo, supuse que te valía acceder así y no le dí más vueltas. Siento no haberte ayudado, porque hubiese sido tan sencillo como mirar tu script. No desesperes por haber dado tantas vueltas con una cosa tan pequeña, de todo se aprende.

Ahora te animo a que asegures el acceso tanto por SSH como por VNC, en www.rpi.uroboros.es tienes mucha información. La primera, cambiar los puertos y la contraseña.

Para comprobar cuanta gente intenta acceder por SSH puedes usar mi pequeño programa en Python https://github.com/IkerGarcia/SSHlogger.

Un saludo.
https://github.com/ikergarcia

master2neo
Posts: 1
Joined: Sun Apr 10, 2016 9:44 pm

Re: Inicio automático de aplicaciones en RaspBerry Pi 2

Sun Apr 10, 2016 9:47 pm

Buenas tardes amigos quisiera saber como ejecutó un programa automáticamente después de haber echo el login cabe destacar que el programa que quiero q se ejecute es en modo gráfico y que sea automático al iniciar la sesion

Osckar
Posts: 11
Joined: Tue Jan 05, 2016 8:39 am

Re: Inicio automático de aplicaciones en RaspBerry Pi 2

Sun Apr 24, 2016 11:36 am

Hola, esto es lo que hice para lograr ejecutar el programa Tight VNC Server al arrancar la RaspBerry Pi, espero que te sirva.
Primeramente necesitas un archivo Bash que cumpla el estándar LSB (Linux Standard Base). Más abajo dejo el código de mi archivo Bash con ese estándar.

Luego sigue los siguientes pasos para que el archivo Bash se agregué al registro de archivos de inicio de RaspBian.

1 - Comprobar que el SO esté actualizado: Ejecutar desde Terminal la orden ‘sudo update apt-get update’ (sin las comillas).
2 - Copiar o crear con un editor el archivo Bash en /etc/init.d/ (requiere permisos de root).
3 - Modificar los permisos del archivo Bash y añadirlo al registro de inicio:
'sudo chmod 755 /etc/init.d/nombredetuscript'
'sudo update-rc.d nombredetuscript defaults'

4 - Las órdenes de ejecución del programa deben ir precedidas del comando 'sudo', ya que se van a ejecutar en modo root:
sudo ./ruta/ejecutable

Si no se hace así RaspBian NO ejecutará el programa.

Aquí el archivo Bash:

Code: Select all

#! /bin/sh
    ### BEGIN INIT INFO
    # Provides: VNC
    # Enconding: UTF-8
    # Required-Start:
    # Required-Stop:
    # Should-Start:
    # Default-Start: S
    # Default-Stop:
    # Short-Description: Inicio automatico del servidor Tight VNC Server.
    # Description: Inicio automatic del servidor Tight VNC para su 
    # acceso remoto para evitar el uso de una pantalla, un teclado 
    # y un raton propios.
    #
    # X-Interactive: true
    ### END INIT INFO

    sudo PATH=/etc; /etc/init.d; /usr; /usr/bin
    sudo ./usr/bin/vncserver
    exit 0
Aprovecho para volver a agredecer la colaboración de los usuarios del foro en español de raspberrypi.org, así como de otros sitios, que tanto me han ayudado a avanzar con este asunto que ya daba por imposible.

¡Saludos!

fersolo
Posts: 1
Joined: Tue Mar 07, 2017 4:38 pm

Re: Inicio automático de aplicaciones en RaspBerry Pi 2

Tue Mar 07, 2017 4:42 pm

Hola oigan porque me denega la escritura en la carpeta de init.d, creo el archivo en otra carpeta y le doy autoirizacion 755 pero no me deja copiarlo saben como resolver esto saludos

Return to “Español”