Página 1 de 1

Ejecutar archivo.sh nada más encender Raspberry Pi

Publicado: 22 Abr 2019, 09:10
por Nadales56
Buenos días!
Les comento, he hecho una sencilla interfaz gráfica con QT Creator para un programa. Para que esta "aplicación" funcione correctamente mi ordenador windows comparte una carpeta en red y raspberry accede a ésta para recurrir a una serie de datos.
Para automatizar el proceso, he implementado un pequeño código sh que habilita la conexión con el otro equipo y luego abre el ejecutable de QT Creator, y todo funciona bien.
Lo que me gustaría es hacer que este código sh se ejecutara nada más encender la raspberry pi. A pesar de que he encontrado unas 3 o 4 formas distintas de hacerlo, no he conseguido sacarlo adelante.
Alguien ha hecho esto o se ha encontrado con el mismo problema? LLevo un par de días para sacar esta tontería, a ver si me pudieran ayudar.
Un saludo, muchas gracias!

Re: Ejecutar archivo.sh nada más encender Raspberry Pi

Publicado: 22 Abr 2019, 10:57
por tatxen
No dices cuales son esas tres o cuatro maneras que has probado. Lo mas habitual seria con crontab o con rc.local, ¿los has probado?, ¿puedes decir de que forma los has empleado y como es el fallo?

Re: Ejecutar archivo.sh nada más encender Raspberry Pi

Publicado: 22 Abr 2019, 12:30
por Nadales56
He probado a modificar rc.local, añadiendo en las líneas finales antes del exit 0 "sudo bash /ruta_archivo/archivo.sh".
He probado modificando el script .bashrc de una forma similar
He probado en crontab, añandiendo algo del mismo estilo en las líneas finales, siempre antes de exit 0.
Vaya, he seguido esta web:
https://www.dexterindustries.com/howto/ ... t-startup/
He estado más cerca que he estado es con el método 4, modificando SYSTEMD.
Lo más que he conseguido es que se establezca la conexión entre ordenadores, por lo que acceder al archivo accede, sin embargo, no ejecuta la aplicación.
No me aparece nada de errores. Donde debería de aparecer?

Re: Ejecutar archivo.sh nada más encender Raspberry Pi

Publicado: 22 Abr 2019, 13:13
por Wampirius
Hola.

Con crontab lo deberías de poder hacer. Yo he tenido que hacer algo similar para un proyecto y como he ido documentando todo, eso mismo lo tienes detallado en esta entrada:

https://www.wampirius.com/pantallas-inf ... n-crontab/

En la primera parte de la entrada está el funcionamiento de crontab y cómo colocar las instrucciones. Echa un vistazo y si no está claro me dices y te aclaro lo que necesites, que a veces yo me explico como un libro cerrao, pero yo lo he hecho tal como pone allí y está funcionando a la perfección.

Suerte y un saludo!

P.D.: De hecho, releyendo tu post, tanto tu aplicación como mi engendro comparten más cosas. Este bicho también se conecta a un pc, aunque con Ubuntu, a una carpeta, etc, etc.

Re: Ejecutar archivo.sh nada más encender Raspberry Pi

Publicado: 22 Abr 2019, 15:14
por tatxen
Con rc.local cambia la linea por esto:

Código: Seleccionar todo

sh /ruta_script/script.sh &
Para crontab (como explica Wampirus):
crontab -e (te pide seleccionar editor, yo uso nano) y añadir linea:
@reboot sleep 30 ; sh /ruta_script/script.sh
Si estas con nano ctrl+o para guardar y ctrl+x para salir

¿Has usado sudo por algo?, ¿el script necesita privilegios de root? de ser así usa:

Código: Seleccionar todo

sudo crontab -e
lo demás igual.

Con systemd no te puedo ayudar, por ahora me limito a mirarle de reojo con cara de mala leche y añorar mi sysvinit de toda la vida jajaja

Re: Ejecutar archivo.sh nada más encender Raspberry Pi

Publicado: 23 Abr 2019, 10:44
por Nadales56
Buenas!
He estado echándole un vistazo al proyecto y está todo muy bien explicado. Sin embargo, no me termina de funcionar.
Al final de Crontab he puesto lo siguiente: @reboot sleep 10 && /ruta_archivo/archivo.sh;

Dicho archivo.sh consta de dos líneas.
La primera es un mount donde se establece conexion entre equipos, cosa que hace automaticamente tras encender. Pero no me abre el ejecutable, para ello, en la línea dos tengo puesto: ./ruta_ejecutable/ejecutable

Decir que si escribo esto último por terminal, el ejecutable se abre y funciona correctamente.

Re: Ejecutar archivo.sh nada más encender Raspberry Pi

Publicado: 23 Abr 2019, 14:37
por Wampirius
Hola

El "sleep 10" lo puse para dar tiempo más que de sobras a que se completara el arranque. Posiblemente lo puedas eliminar con tranquilidad, y si lo quitas elimina lógicamente el && siguiente.

¿Has dado permiso de ejecución al script "archivo.sh"? (chmod +x)

Y otra cosa: como no sé lo que esperas del script igual me equivoco, pero si lo que esperas es un "algo" por pantalla es posible que no lo veas y sí que se esté ejecutando el archivo, me explico. Si por ejemplo tienes un script tipo echo "hola" al ejecutarlo desde la consola verás un hola, pero al hacerlo desde crontab no mostrará nada por pantalla a menos que le digas por dónde tiene que mostrar ese "hola".

Si te fijas en la entrada que puse verás que uno de los scripts, el "iniciando.sh", está puesto en crontab así:
/home/pi/iniciando.sh > /dev/tty1
A fin de que los mensajes del script salgan por la pantalla (la hdmi), porque si no, el script se ejecutaba pero en pantalla no se veía nada.

A ver si es algo de eso. Si al final será una chorrada, pero de estas que nos tienen mil horas rabiando...

Un cordial saludo.

Re: Ejecutar archivo.sh nada más encender Raspberry Pi

Publicado: 24 Abr 2019, 11:12
por Nadales56
Buenas!
Le he dado permiso a todos los archivos, tanto al sh como al ejecutable y sigue igual.

A ver, lo que quiero es que se me abra un ejecutable que he creado con QT Creator, básicamente lo que hace automático es montar la carpeta, pero luego no se abre nada...y no lo entiendo jajajjaja, porque eso significa que accede al archivo sh, pero por lo que sea a la hora de ejecutarlo, pues no lo hace o no lo estoy mostrando por la pantalla que deseo.
Básicamente quiero usar la raspberry pi para una única aplicación, que se trata de esta que he hecho, por lo que me interesaría que la aplicación de abriera directamente una vez se enciende. Tengo puesto lo de /home/pi/iniciando.sh > /dev/tty1, y no me sale nada por la pantalla. para el caso de que quiera mostrarlo a través del display, cómo tendría que hacerlo?

Estoy seguro de que se trata de algo que no he terminado de configurar bien o lo que sea...como dices, una chorrada, seguramente jajaj
Un saludo y gracias!

Re: Ejecutar archivo.sh nada más encender Raspberry Pi

Publicado: 24 Abr 2019, 12:18
por Wampirius
Hola!

Pues me inclino a creer que lo que hace es precisamente lo que comentas, que no lo muestra en pantalla, porque a mi me pasó algo similar. Pero ojo, que esa línea que has puesto, si la has puesto así, no te hará nada: /home/pi/iniciando.sh > /dev/tty1 Si es que ya te digo que a veces me explico como un libro cerrao... :)

Verás, así es como lo tengo yo, pero porque uno de mis scripts se llama "iniciando" y está en el home de pi. Es decir, que lo que hay que poner es: /ruta_del_archivo/nombre_del_script.sh > /dev/tty(?) que en mi caso era tty1 pero en el tuyo no necesariamente.

Yo en linux estoy bastante pez y para esto de los tty no puedo darte una respuesta más concreta, pero a ver si estos links te pueden ayudar:

https://es.stackoverflow.com/questions/ ... chivos-tty

Si te apañas con el inglés: http://www.tldp.org/HOWTO/html_single/T ... nal-HOWTO/

Y un truquillo que uso: Cuando me pongo a hacer un script, suelo ir poniendo algunos "echo" para ver si se va ejecutando todo correctamente, así si se traba tengo ya alguna idea de dónde está fallando.

También te digo que para mis propósitos inicio la Raspberry en modo consola, si en tu caso se inicia en modo gráfico igual la solución difiere un poco.

Ánimo y suerte, que saldrá, seguro que sale.

Un cordial saludo.

Re: Ejecutar archivo.sh nada más encender Raspberry Pi

Publicado: 25 Abr 2019, 13:09
por Nadales56
Buenas!
Muchas gracias por el aporte! he conseguido avanzar algo más. Lo único que me falta es que se abra el archivo.
Antes de aparecer el escritorio me aparece un mensaje: "A star job is running for dhcpcd on all interfaces"
También comentar que el ejecutable que quiero que se abra tiene el icono de un avión de papel, no sé si esta información es relevante.
Sería conveniente decirle con qué programa deseo que se abra el ejecutable

Gracias!

Re: Ejecutar archivo.sh nada más encender Raspberry Pi

Publicado: 25 Abr 2019, 22:37
por Wampirius
Hola!

Uffff... pues ya no sé bien qué decirte. A ver si en lugar de quitar el sleep 10 que te comentaba que tenía yo puesto lo que hay que hacer es precisamente lo contrario, subirlo. Mira este link:

https://www.alvarolara.com/2013/03/20/e ... en-ubuntu/

El motivo de ese sleep es dar tiempo a que acabe de arrancar y cargar todo, y luego ejecute el script, como no sea eso... que se intenta ejecutar antes de haber cargado el entorno gráfico y no puede...

No sé, ya empiezan a ser palos de ciego...

Un cordial saludo.