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.

-
Espacio
- El primer satélite construido con paneles de madera fue lanzado al espacio
- Lo que quise saber del Universo pero la mala divulgación no contó
- ¿Puede existir vida en el espacio sin un planeta? Un nuevo estudio revela una respuesta sorprendente
- Los competidores de SpaceX se esfuerzan por construir cohetes reutilizables
- Descifraron la señal ¡Wow!: y su resultado no te gustará
- Starlink ya está disponible en todos los vuelos Airbus de Hawaiian Airlines
- Hace 4.500 millones de años, otro planeta impactó contra la Tierra. Hemos encontrado sus restos.
- Estudio Revela que las Civilizaciones Avanzadas en la Vía Láctea Podrían ser Extremadamente Raras
- Plutón no regresará, pero los astrónomos quieren redefinir los planetas nuevamente
- La Voyager 1 regresa a las operaciones científicas normales
- China aterriza con éxito una sonda en la cara oculta de la Luna y comienza a recolectar muestras
- Un estudio confirma la predicción de Einstein: los agujeros negros tienen una "región que se hunde"
- La Voyager 1, la primera nave en el espacio interestelar, puede haberse quedado a oscuras
- Adiós al Ingenuity, Perseverence toma una foto del helicóptero dañado y abandonado en Marte.
- Una Kilonova a años luz de la tierra, representa un potencial peligro para nuestro planeta