LinuxParty

NUESTRO SITIO necesita la publicidad para costear hosting y el dominio. Por favor considera deshabilitar tu AdBlock en nuestro sitio. También puedes hacernos una donación entrando en linuxparty.es, en la columna de la derecha.
Inicio desactivadoInicio desactivadoInicio desactivadoInicio desactivadoInicio desactivado
 

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.

No estás registrado para postear comentarios



Redes:



   

 

Suscribete / Newsletter

Suscribete a nuestras Newsletter y periódicamente recibirás un resumen de las noticias publicadas.

Donar a LinuxParty

Probablemente te niegues, pero.. ¿Podrías ayudarnos con una donación?


Tutorial de Linux

Filtro por Categorías