Realmente no es necesario que amule detecte nada, puedes hacerlo perfectamente con un mini script de sistema.
En vez de ejecutar directamente amule al iniciar sesion en el entorno grafico, lanza un script que compruebe si existe un proceso amuled en funcionamiento y actue en consecuencia.
Por ejemplo, el siguiente comando devuelve cero si el usuario no ha ejecutado amuled, y uno si lo ha hecho:
ps fx | grep -v grep | grep -c amuled
Con esto se podria hacer:
#!/usr/bin/env dash
if [ `ps x | grep -v grep | grep -c amuled` -eq "0" ]: then
echo "Ejecutando amule...."
amule
else
echo "Ya se está ejecutando amuled."
fi
Al ejecutarse desde el entorno gráfico, los mensajes (echo ....) no se ven, pero hace su trabajo igualmente.
Si amuled ha sido lanzado por otro usuario este script no lo ve, en caso de querer que no se lance amule idependientemente de quien ha ejecutado amuled, solo hay que añadir una "a" al parametro de ps, quedando como "ps ax | grep -v ......"