Lanzar y parar MLDonkey con Automator

Este truco muestra cómo hacer un pequeño programa Automator que arranque y pare el servidor de MLDonkey.

El demonio mlnet

Los demonios son programas (generalmente de consola) que quedan ejecutando en background. MLDonkey es un ejemplo de demonio muy utilizado en el mundo de Mac OS X para compartir datos y programas entre la comunidad. Lógicamente sólo se debe compartir datos y programas que no estén licenciados para explotación comercial.

El demonio de MLDonkey lo implementa el comando mlnet, el cual se puede obtener haciendo una sencilla búsqueda en Internet.

Suponiendo que el comando lo guardamos en el directorio /usr/local/bin, podemos ejecutar el comando así:

$ /usr/local/bin/mlnet
2006/09/17 19:39:35 Starting MLDonkey 2.7.7.CVS ...
2006/09/17 19:39:35 Language EN, locale UTF-8, ulimit for open files 256
2006/09/17 19:39:35 MLDonkey is working in /Users/fernando/.mldonkey
2006/09/17 19:39:35 [DNS] Resolving [ferbook] ...
2006/09/17 19:39:35 [DNS] Resolving [www.mldonkey.net] ...
2006/09/17 19:39:35 Logging in /Users/fernando/.mldonkey/mlnet.log
2006/09/17 19:39:36 Core started

El comando crea en $HOME/.mldonkey una carpeta con algunos ficheros de configuración, y carpetas donde depositar los datos y programas compartidos.

Una vez lanzado el demonio podremos acceder a el desde un browser usando la URL:

http://localhost:4080

Para parar el demonio basta con pulsar Ctrl+C sobre el terminal.

Por desgracia, si lo ejecutamos de la forma anterior, el comando no devuelve el control al terminal. Además produce una salida textual que puede, o no, interesarnos. Para evitarlo podemos lanzarlo de la forma:

$ nohup /usr/local/bin/mlnet >/dev/null 2>&1 &

Ahora se nos devuelve el control al terminal inmediatamente, y además no obtendremos mensajes por consola.

Al haber perdido el control del proceso, para pararlo podemos usar el comando:

$ killall mlnet

Tener que entrar en el terminal cada vez que queremos lanzar mlnet se vuelve un dolor. Para evitarlo podemos crear dos pequeñas aplicaciones en el escritorio como las que muestra la figura.

Lanzar y parar mlnet con Automator

lanzapara.png
Automator, es una herramienta de programación (que se distribuye gratuitamente con las Developer Tools) la cual nos permite crear pequeñas aplicaciones, de este tipo, en muy poco tiempo.

Nosotros vamos a crear dos aplicaciones llamadas lanza y para que ejecuten las operaciones de lanzar y parar el demonio mlnet.

Para ello ejecute Automator, elija la acción Run Shell Script, y cree un script como el de la figura, el cual ejecutará el comando nohup /usr/local/bin/mlnet >/dev/null 2>&1 &.
automator.png

Cuando vaya a guardar la aplicación Automator (p.e. con el nombre lanza), verá que está se puede guardar de dos formas:

  • Como un Workflow, lo cual le permite editar a posteriori la aplicación. Es decir, sería el equivalente al código fuente de un programa.
  • Como una Application, lo cual crea un ejecutable con un icono.

Análogamente puede crear otra aplicación Automator con el nombre para que ejecute el comando killall mlnet.