Termux

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

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

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:

See the gist on github.

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

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

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

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

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

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.
parzibyte

Programador freelancer listo para trabajar contigo. Aplicaciones web, móviles y de escritorio. PHP, Java, Go, Python, JavaScript, Kotlin y más :) https://parzibyte.me/blog/software-creado-por-parzibyte/

Ver comentarios

  • 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 ).

  • 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.

  • Hola, instale todo, probé el script pero al reiniciar no se ejecuta, se debe seguir algún orden?

  • Gracias, pero pensé que desde el propio Termux:boot podría ejecutar una sesion. No se puede desde el propio script ?

    • No entiendo a qué te refieres con ejecutar una sesión. Si quieres ejecutar un script simplemente ponlo en un archivo de bash que corra al inicio

Entradas recientes

JavaScript (lado del cliente): leer pixeles de imagen

En ocasiones es necesario leer los pixeles y colores de una imagen con JavaScript del…

5 días hace

PHP y JavaScript: llenar select con AJAX

Siguiendo con los tutoriales de listas desplegables o select con JavaScript, vamos a ver cómo…

5 días hace

Imprimir PDF generado con HTML

Hoy vamos a ver programar la impresión de un PDF generado a partir de HTML…

6 días hace

JavaScript: llenar select con arreglo

En este tutorial básico de JavaScript con HTML vamos a ver cómo llenar una lista…

2 semanas hace

Imprimir PDF a partir de URL

En este artículo se presenta una guía para imprimir un PDF a partir de una…

2 semanas hace

Imprimir PDF a partir de base64

En este post voy a enseñarte cómo imprimir un PDF a partir de su representación…

2 semanas hace

Esta web usa cookies.