Este artículo trata sobre una forma sencilla de ejecutar comandos después de encender el dispositivo y cargar el sistema, con la posibilidad de establecer un tiempo de pausa entre la carga y la ejecución de los comandos, por ejemplo, para que el dispositivo pueda conectarse a la WiFi.
Después de comprar dispositivos como Raspberry Pi, podrías tener este deseo.
En este ejemplo, usaremos un dispositivo Asus Tinker Board, pero este método funciona para cualquier dispositivo con Linux.
Inicio de sesión automático después de encender
Primero, debes configurar el inicio de sesión automático en el dispositivo al encenderlo.
Nuestro dispositivo ya tiene configurado el inicio de sesión automático para el usuario principal adlinux
, así que omitiremos este paso. La forma de activar la autorización automática depende directamente del entorno gráfico. Busca cómo activar esta función para tu sistema específico.
Configuración del inicio automático
Ejecutaremos los comandos usando crontab. Para acceder al editor de tareas, usa el comando:
sudo crontab -e -u root
En este archivo, debes agregar las tareas que quieres ejecutar.
Por ejemplo, añadimos este comando (lo explicaremos más adelante):
@reboot sleep 30 && sudo python3 /home/adlinux/main.py &
Las líneas después de #
están comentadas y no se ejecutarán.
Primero está el indicador @reboot
, que indica que la línea siguiente se ejecutará después de encender el dispositivo.
Luego está sleep 30
, que indica una pausa de 30 segundos. Este tiempo de espera es suficiente para que el dispositivo se conecte a la WiFi.
&&
combina los dos comandos sleep 30
y sudo python3 /home/adlinux/main.py
. Aquí se ejecuta el script de Python como administrador. &
al final indica que se debe ejecutar este proceso en segundo plano.
Ahora, después de guardar el archivo y reiniciar el dispositivo (sudo reboot
), el script de Python se ejecutará después de 30 segundos.
Salida de datos
Queda por ver cómo detectar si hay errores durante la ejecución. No podemos ver la salida del comando, pero esto se puede solucionar.
Puedes usar el símbolo >
para indicar dónde se debe guardar la salida de datos. Esto se ve así:
@reboot sleep 30 && sudo python3 /home/adlinux/main.py >/home/adlinux/logs.txt &
En este caso, la salida del script se guardará en el archivo logs.txt
. Si escribes >>
, los datos de salida no sobrescribirán el archivo, sino que lo agregarán.
Conclusión
De esta forma sencilla, a través de crontab, puedes ejecutar comandos no solo cada cierto tiempo, sino también después de encender el dispositivo.
¡Gracias por tu tiempo!
Si tienes alguna pregunta, háznosla saber en los comentarios.
¿Qué te parece?
Es bueno conocer tu opinión. Deja un comentario.