Control y ejecución de aMule


Existe una nueva versión de este script, entra aquí para comprobarlo.

Tengo aMule v.2.3.3 instalado en una Raspberry Pi 4 compartiendo archivos todo el día. Como sistema operativo uso Raspberry Pi OS .

En ocasiones aMule se cierra y ya no puedes acceder en remoto desde el teléfono móvil, tablet o PC etc. Por eso he creado un script que vigila si aMule está corriendo y si no es así, que lo ejecute de forma automática. También podemos iniciar aMule al arrancar el sistema operativo, tras un corte de corriente, reinicio, apagado forzoso etc


Bueno, en realidad lo que vamos a controlar es amuled, que es la parte no gráfica de aMule, y para manejarlo gráficamente usaremos aMuleGUI.

IMPORTANTE:

aMule y amuled no pueden correr juntos, de hecho si tienes alguno en ejecución el otro no se abrirá y dará un error.
El archivo de configuración de aMule y amuled es el mismo, por lo que para configurar amuled, hazlo a traves de aMule. (configuración recomendada)

¿Qué requisitos son necesarios para controlar amuled?

    1 - Que el archivo muleLock no exista.
    2 - Que el programa amuleweb esté cerrado
    3 - Que el script se ejecute cada X tiempo.
    4 - Que arranque al iniciar el sistema operativo.

1. Que muleLock no exista

A veces ocurre que si aMule se cierra inesperadamente, el archivo muleLock no desaparece y mientras este archivo exista, aMule no se abrirá.
Este archivo se encuentra en la carpeta principal de usuario /home/tu_usuario/.aMule/muleLock

Con el siguiente código podemos hacer un script que lo elimine.

#!/bin/bash
#https://chapuboot.blogspot.com/
#chequea si el archivo emuleLock existe

echo " "
echo "###########################"
echo " "
date 
+%c
if [ -f 
~/.aMule/muleLock ];
then
    echo "muleLock existe, borrando."
    rm
~/.aMule/muleLock
else
    echo "mulelock, no existe, correcto"
fi

El script imprime lineas de separación, fecha y comprueba si el archivo muleLock existe, si es así, saca el mensaje "muleLock existe, borrando", a continuación borra el archivo y termina el programa.
Si el archivo no existe, saca el mensaje "muleLock, no existe, correcto" y termina el programa.

2. Que el programa amuleweb esté cerrado.

Podemos hacer un script que compruebe si aMule sigue funcionando, que lo abra si se a cerrado y que no haga nada si está abierto.
También debemos de tener controlado amuleweb, si hemos habilitado dicha función, ya que si amuleweb está abierto, tampoco dejará abrir aMule.

Para ello he creado este script.

#chequea si amuled esta corriendo
if pgrep amuled > /dev/null 2>&1 
then
    echo "                     "
    echo "*********************"
    echo "amuled esta corriendo" 
    echo "....................."
else
    echo "                                  "
    echo "amuled NO esta corriendo, abriendo"
    echo ".................................."
    killall -9 amuleweb > /dev/null 2>&1
    sleep 5s
    amuled & > /dev/null 2>&1
    echo "corriendo"
fi

Esto viene a decir que compruebe si amuled se está ejecutando, muestra el mensaje "amuled está corriendo y termina el programa.
Si no está corriendo muestra el mensaje "amuled NO esta corriendo, abriendo", acto seguido cierra el programa amuleweb por si estuviese abierto, abre amuled y termina el programa.
Para quitar los mensajes de error y apertura de programa, he llevado dicha información a /dev/null, así me aseguro que el script solo imprime en el log los mensajes que me interesan.

Así que lo unimos todo en un archivo de texto y lo guardamos con el nombre que queramos. Yo lo he guardado con el nombre aMuleLock.sh

También lo puedes descargar desde aquí

#!/bin/bash
#https://chapuboot.blogspot.com/
#chequea si el archivo emuleLock existe

#última modificación 13/09/2022
echo " "
echo "###########################"
echo " "
date +%c
if [ -f ~/.aMule/muleLock ];
then
    echo "muleLock existe, borrando."
    rm ~/.aMule/muleLock
else
    echo "mulelock, no existe, correcto"
fi

sleep 3s

#chequea si amuled esta corriendo
if pgrep amuled/dev/null 2>&1 
then
    echo "                     "
    echo "*********************"
    echo "amuled esta corriendo" 
    echo "....................."
else
    echo "                                  "
    echo "amuled NO esta corriendo, abriendo"
    echo ".................................."
    killall -9 amuleweb > /dev/null 2>&1
    sleep 5s
    amuled & > /dev/null 2>&1
    echo 
fi

He metido entre el código un par de comandos sleep, que lo que hacen es retrasar 3 y 5 segundos la ejecución del código que hay bajo estos.

Una vez hayas descargado o guardado el script, deberás hacerlo ejecutable, para ello en una terminal escribe:

chmod +x aMuleLock.sh

3. Que muleLock.sh se ejecte cada hora.

Se puede ejecutar este script cada hora a través de Cron que sirve para automatizar tareas.
La tarea se debe ejecutar como usuario, no como root, ya que aMule no permite ejecutarse como superusuario.
Crearemos un archivo Crontab, así que desde la terminal ejecutamos el siguiente comando:

crontab -e

Nos pedirá que editor de textos queremos usar de una lista, yo he elegido el editor nano y pegamos el siguiente comando:

@hourly /home/tu_usuario/aMuleLock.sh >>  /home/tu_usuario/aMuleLock.log 2>&1

Esto quiere decir que cada hora se ejecutará el script aMuleLock.sh y nos creará un archivo Log con la información pertinente.

4. Que arranque al iniciar el sistema operativo.

De la misma forma que hicimos anteriormente, pegamos el siguiente comando en Crontab

@reboot /home/tu_usuario/aMuleLock.sh >>  /home/tu_usuario/aMuleReboot.log 2>&1

Podemos listar las tareas que tenemos programadas:

crontab -l

 



Reiniciamos y comprobamos en Monitor del sistema que amuled y amuleweb han arrancado.




En nuestra carpeta Home se habrán creado dos archivos log, uno con la información al arrancar el sistema operativo (aMuleReboot.log) y el otro con la información de la vigilancia a cada hora (aMuleLock.log)


En la imagen inferior podemos ver como tenemos la tarea de ejecutar nuestro script cada hora.


Y  ese es el archivo log que crea Cron, para saber que nuestra tarea está funcionando de forma correcta.

¡¡¡Recuerda!!!

aMule y amuled no pueden correr juntos, ahora para usar aMule deberás usar el programa aMuleGUI.


Mas información

aMule se bloquea con bastante frecuencia. ¿Puedo configurarlo para que se reinicie cada vez que falla?
    















Comentarios

Entradas populares de este blog

TP-Link WR841ND repetidor WIFI

Instalar y Configurar aMule en Ubuntu

II. Vodafone Technicolor Tc7230 modo bridge.