LinuxParty
En entornos Linux, es común utilizar herramientas de automatización como `cron` para realizar tareas programadas. Sin embargo, cuando se trata de ejecutar aplicaciones gráficas, como el cliente de eDonkey/aMule, puede surgir un desafío adicional: asegurarse de que la aplicación se ejecute en el entorno gráfico del usuario correcto, especialmente cuando se utiliza `cron` para programar la tarea.
En este artículo, exploraremos cómo configurar una solución para este problema utilizando `sudo`, `cron` y un script de shell en Linux. Utilizaremos el cliente de eDonkey/aMule como ejemplo de aplicación gráfica.
Configuración de sudoers:
Primero, es importante configurar sudoers para permitir que ciertos comandos se ejecuten sin solicitar una contraseña. En nuestro caso, queremos permitir que el usuario `javier` ejecute `amule` sin contraseña.
Trate de modificar sudoers lo mínimo imprescindible, solo lo necesario, y si no es necesario, no añadirlo.
Para tal modificación usaremos la aplicación "visudo".
sudo visudo
y añadimos en la sección correspondiente...
javier ALL=(javier) NOPASSWD: /usr/bin/nohup /usr/bin/amule
Con esta configuración, `javier` podrá ejecutar `amule` sin contraseña, lo que es esencial para su ejecución automática.
El Script:
A continuación, necesitamos un script que verifique si aMule está en ejecución y, si no lo está, lo inicie en el entorno gráfico de `javier`. Aquí está el script que utilizaremos:
#!/bin/bash # Usuario que ejecuta el entorno gráfico USER="javier" DISPLAY=":0" # Ruta al ejecutable de aMule AMULE_PATH="/usr/bin/amule" # Comando para verificar si aMule está corriendo pgrep -u $USER -x amule > /dev/null # Si el comando pgrep retorna un valor distinto de cero, aMule no está corriendo if [ $? -ne 0 ]; then echo -n "aMule no está corriendo. Iniciando aMule...: " date # Iniciar aMule en el entorno gráfico del usuario sudo -u $USER DISPLAY=$DISPLAY nohup $AMULE_PATH 2>&1 & # Verificar si aMule se inició correctamente if [ $? -eq 0 ]; then echo -n "aMule se inició correctamente... " date else echo -n "Hubo un problema al iniciar aMule... " date exit 1 fi else echo -n "aMule ya está corriendo... " date fi
Este script verifica si aMule está en ejecución. Si no lo está, utiliza `sudo` para iniciar aMule en el entorno gráfico del usuario `javier`.
Configuración de cron:
Finalmente, configuramos cron para ejecutar este script periódicamente En este caso lo comprueba cada 5 minutos.
Añade la siguiente línea al crontab del usuario `javier`: editas el contrab con "crontab -e" y sales pulsando primero la Tecla [Esc] y después... (sin las comillas)
":wq" - Para salir guardando.
":q!" - Para salir sin guardar.
*/5 * * * * /ruta/al/script/check_amule.sh >> /home/javier/amulelog.log
Esta línea hará que el script se ejecute cada 5 minutos, verificando si aMule está en ejecución y, si no lo está, iniciándolo automáticamente.
Y eventualmente, registramos los eventos en un "log" que indicamos en la ruta, por si queremos verlo.
Con la combinación de `sudo`, `cron` y un script de shell, podemos automatizar el inicio de aplicaciones gráficas en Linux de manera eficiente y sin requerir la intervención del usuario. Esta solución es especialmente útil para aplicaciones como aMule, que necesitan estar en ejecución de manera continua. Al seguir estos pasos, podemos garantizar que aMule se inicie automáticamente en el entorno gráfico del usuario deseado, lo que proporciona una experiencia de usuario más fluida y sin interrupciones.

-
Fedora
- La distribución de Linux Ultramarine 41 basada en Fedora ya está disponible para descargar
- Cómo instalar un intercambiador de entornos de escritorio en Fedora
- Instalar Steam Valve en Fedora
- Fedora KDE es un brillante sistema operativo de escritorio listo para cualquier tipo de usuario.
- Se lanzó Fedora Linux 41 con Linux Kernel 6.11, DNF5, GNOME 47 y más
- Fedora 39 beta ofrece la distribución de Linux con mejor rendimiento que he visto en mucho tiempo
- Fedora lanzó la computadora portátil Fedora Slimbook Linux con pantalla 3K, NVIDIA RTX 3050 Ti
- Fedora 38 Linux nueva versión de esta gran distro, disponible
- AWS de Amazon lanza 'Amazon Linux 2023' basado en Fedora y optimizado para la nube
- Instalar Nginx con PHP5 (y PHP-FPM) y Soporte MySQL en Fedora Linux
- Instalar Nginx con PHP5 (PHP-FPM) y MySQL en Fedora 17
- 20 comandos YUM para la gestión de paquetes
- Servidor Samba eb Fedora 13 con dbsam Backend
- La distro, Fedora Linux, declarada "Bien público digital"
- 26 Comandos de DNF para gestión de paquetes (rpm) en Fedora Linux