Comprobar registros al encender dispositivo

Ejecutar scripts de Termux en el inicio (al encender dispositivo Android)

Configurar Termux Boot para ejecutar acciones al encender dispositivo

Siguiendo con los buenos artículos sobre Termux y sobre cómo tener una probada de Linux en nuestros terminales Android, vamos a ver cómo ejecutar scripts o acciones al encender el dispositivo.

Esto viene de ayuda cuando queremos que algunos demonios o servicios se inicien cuando el dispositivo enciende, por ejemplo el servicio de MySQL (de hecho hago este post a petición de un lector que quería justamente eso).

Nota: antes de leer esto, te animo a leer el post de los primeros pasos con Termux.

Aplicación para ejecutar scripts con Termux cuando el dispositivo enciende

La aplicación se llama Termux:Boot y puedes comprarla (sí, desafortunadamente) en la Play Store. Pero no te preocupes, que he encontrado la manera de evitar la compra y hacerlo totalmente legal.

¿Y cómo es esto? bueno, en la Play Store cuesta 41 pesos mexicanos, pero en F-Droid está totalmente gratuita (me parece que no es ilegal) así que podemos descargarla directamente desde F-Droid y ya está.

La desventaja o problema que trae esto es que vas a tener que desinstalar la versión de Termux de la Play Store, porque la firma digital no coincidirá con la de F-Droid. En resumen:

  • Si quieres mantener la versión de Termux de la Play Store, compra la versión de Termux:Boot en Play Store
  • Si quieres todo gratuito, descarga la versión de Termux desde F-Droid y también la de Termux:Boot
  • En caso de que seas nuevo y no temas desinstalar tu Termux actual, entonces instala ambas apps desde F-Droid.

No mezcles instalaciones porque causarán problemas. Instala ambas apps desde el mismo lugar; mira más abajo para ver cómo conseguir cada una.

Descargar otra versión de Termux

Ya he hecho otro post sobre cómo instalar Termux desde F-Droid, te invito a leerlo para que sepas cómo hacerlo. Una vez que instales la app, configúrala (omitiendo el paso de instalación, obviamente).

Descargar Termux:Boot

Ahora veamos cómo descargar Termux:Boot desde F-Droid. Lo digo de nuevo, si quieres pagar por la app, puedes hacerlo y no pasa nada. Aquí explicaré cómo descargarla desde F-Droid.

Vamos a la página de F-Droid y descargamos el APK. La página es esta. No presionamos el botón de Download F-DROID, sino que descargamos directamente la APK. Esto nos quita actualizaciones pero evitamos instalar la tienda.

Descargar APK de Termux Boot
Descargar APK de Termux Boot

Luego de eso instalamos la app (después de haber instalado Termux, obviamente) y la abrimos. En mi caso se ve así:

Abrir app de Termux Boot
Abrir app de Termux Boot

Basta con abrirla para que la misma se encargue de ejecutar scripts en el boot del dispositivo; luego de eso la cerramos. Es decir, con esto ya está configurado.

Poner scripts para que se ejecuten al inicio

En resumen, todos los scripts sh que pongas dentro de ~/.termux/boot/ van a ejecutarse al inicio. Dichos scripts pueden contener cualquier tipo de comando válido de bash.

Pon los scripts que quieras, con extensión sh y luego dales permiso de ejecución. Si quieres ver un ejemplo paso a paso sigue leyendo.

Ejemplo de script de ejecución al inicio

Vamos a ver un ejemplo de un script que escribe en un fichero la fecha y hora en la que se encendió el dispositivo. Iremos paso por paso.

Código del script a ejecutar al encender dispositivo

Veamos primero la programación del script con extensión sh. El código es el siguiente:

No se está haciendo mucho, simplemente se agrega un mensaje al archivo ubicado en ~/registros.log. Lo que contiene el mensaje es la fecha y ya.

Justo en este script podrías poner lo siguiente para iniciar el demonio de mysql:

mysqld_safe -u root &

O cualquier otro comando, pues es un script sh.

Crear script sh

Voy a crear el script en ~/script.sh así que ejecuto:

nano ~/.script.sh

Si no tienes nano, ejecuta:

pkg install nano

El contenido y la creación se ve así:

Contenido del script editando con nano
Contenido del script editando con nano

Luego de eso guardamos con CTRL + O, Enter y CTRL + X. Ya quedó guardado.

Dar permisos y probar script

Por buena práctica vamos a darle permisos con:

chmod +x ~/script.sh

Y a probarlo ejecutándolo:

~/script.sh (o también con) ./script.sh

Aquí la prueba:

Probar script
Probar script

Al imprimir lo que hay en registros.log con cat vemos que efectivamente el script funciona (todavía no lo hemos puesto en el boot, Paciencia tú debes tener, mi joven Padawan).

Es decir, este script escribió la hora actual; se supone que por lo tanto debería escribirla cada que el dispositivo se encienda.

Crear carpeta de scripts

Por defecto, la carpeta de ~/.termux/boot/ no existe. La podemos crear con:

mkdir -p ~/.termux/boot/

Dentro de ella podemos poner miles de scripts si queremos, en este caso vamos a copiar el que creamos. O sea que en resumen todos los scripts dentro de la carpeta serán ejecutados. Y cada script puede tener miles de líneas.

Para copiar ejecutamos:

cp ~/script.sh ~/.termux/boot/script.sh

Recuerda que esto lo hacemos porque creamos el script en ~, si lo hubiéramos creado en ~/.termux/boot/ no habría necesidad de copiarlo. A la próxima igualmente podrías editar directamente el script desde este directorio.

Copiar script a termux boot
Copiar script a termux boot

Ya estamos listos. Ahora por seguridad y para evitar fallos, otra vez abrimos la app de Termux:boot, la dejamos ahí unos 10 segundos y la cerramos. Ya sabes, esos ritos que los informáticos hacemos a veces.

Probar que todo esté en orden

Es momento de reiniciar el dispositivo. Así que…

A punto de reiniciar el dispositivo
A punto de reiniciar el dispositivo

Puedes fijarte en la hora antes de reiniciar. Luego de eso, tan pronto se encendió, fui a Termux y mostré lo de registros.log:

Comprobar registros al encender dispositivo
Comprobar registros al encender dispositivo

Conclusiones

Con eso nos damos cuenta de que esto realmente funciona, es decir, así podemos ejecutar comandos cuando el dispositivo enciende.

Hay otros trucos, por ejemplo existe el comando:

termux-wake-lock

Que me parece que evita que el dispositivo se bloquee, pero no lo he probado ni le veo utilidad. En fin, espero que haya quedado claro.

Como siempre, te invito a leer más sobre Linux, Android o Termux.

Encantado de ayudarte


Estoy disponible para trabajar en tu proyecto, modificar el programa del post o realizar tu tarea pendiente, no dudes en ponerte en contacto conmigo.

No te pierdas ninguno de mis posts

Suscríbete a mi canal de Telegram para recibir una notificación cuando escriba un nuevo tutorial de programación.

7 comentarios en “Ejecutar scripts de Termux en el inicio (al encender dispositivo Android)”

  1. Entonces creé un archivo de audio WAV ( hola,WAV ) con la aplicación gratuita para grabar y lo ejecuté con paplay /storage/emulated/0/Hola.wav y sí funcionó. Claro que antes tuve que construir el directorio ~/storage ( Consulta wiki.termux.com ).

  2. Pensando en poner un mensaje de bienvenida en el teléfono al encenderlo, grabó hola.wav con parecord y ejecutó paplay o play-audio hola.wav en el script de inicio pero no funciona. Lo copié en /storage/emulated/0/ y me di cuenta de que el archivo WAV no tenía sonido, sólo duración.

Dejar un comentario