Tip: Script para usar rtorrent como daemon

4 03 2008

Es algo por lo que habéis preguntado varios de vosotros y hoy os lo traigo.

Antes de comenzar

Os recomiendo antes de que comencéis a leer el tip que echéis un vistazo antes a estas otras dos entradas si aún no lo habéis hecho:

· ¿Conocías… rtorrent?
· ¿Conocías… screen?

Introducción

En verdad rtorrent es un fabuloso cliente de torrents. Tiene puntos en contra, pero a mi modo de verlo son más los que tiene a favor, por no hablar del buen rendimiento que me da, tanto en cuestión de recursos como en tema de velocidad de descarga.

Uno de esos puntos en contra es que hay que tener una consola abierta (ya que su interfaz es en modo texto (ncurses)). Sin embargo gracias a screen podemos desligarlo de la consola, cerrarla y recuperarlo más tarde si queremos.

Pese a todo sigue haciendo falta algo, ejecutarlo como -mal llamado- demonio sin tener que abrir screen, abrir rtorrent, desligar la sesión y cerrar la consola, todo ello manualmente. Muchos quieren que se inicie junto con el sistema de forma automática.

Con este pequeño script podremos iniciar, mostrar y cerrar rtorrent fácil y cómodamente.

Descarga e «instalación» del script

Podéis descargaros el script de este enlace (botón derecho sobre él > Guardar enlace como…). Una vez descargado verificamos que sea ejecutable. Para ello hacemos click derecho sobre el archivo, nos vamos a la pestaña «Permisos» y habilitamos la casilla de «Permitir ejecutar el archivo como un programa«.

El siguiente paso es hacer que esté accesible desde cualquier lugar donde estemos. Para ello tenemos varias opciones. Una de ellas es llevarnos el script a cualquiera de las carpetas que contienen los ejecutables de nuestro sistema. Por ejemplo en /usr/bin:

$ sudo mv rtdaemon /usr/bin

Otra opción es crear un alias, o bien guardar el script en una carpeta donde tengamos más (por ejemplo en /home/tu_usuario/scripts) y hacer un enlace simbólico al archivo:

$ sudo ln -s /home/tu_usuario/scripts/rtdaemon /usr/bin/rtdaemon

De esta forma conservaremos el script si tenemos el /home independiente.

Listo, con esto ya podremos usar el script desde cualquier directorio donde estemos en una consola.

Uso del script

Para usarlo es muy simple. El script permite un argumento de entre tres según el cual hará una cosa u otra. Si escribís el nombre del script en consola (rtdaemon), os saldrá una pequeña ayuda con los siguientes argumentos:

Para iniciar rtorrent como demonio:

$ rtdaemon start

Para mostrar rtorrent en la consola:

$ rtdaemon show

Si queremos desligar de nuevo rtorrent para que siga funcionando en segundo plano y nos permita cerrar la consola, pulsamos primero «Ctrl+a» y después «d«, tal y como vimos en screen.

Para parar rtorrent como demonio:

$ rtdaemon stop

El funcionamiento del script es muy simple. Lo que hace en el primer caso es iniciar rtorrent con screen pero desligado desde el principio. El argumento «show» lo que hace es ligar la sesión. Y el tercero es cerrar screen junto con rtorrent.

Si no os gusta el nombre del script podéis cambiarlo al que queráis cuando lo descarguéis y usar el nombre que le pongáis para hacer uso de él sin problema alguno.

Ejecutarlo como demonio automáticamente

Lo único que queda por explicar es que se ejecute automáticamente el demonio conjuntamente con la sesión. Hay varias formas de hacerlo, pero en principio sólo vamos a ver la más sencilla.

Vamos a «Sistema > Preferencias > Sesiones > Programas de inicio«. Pulsamos sobre el botón «Nuevo«. Ponedle el nombre que queráis, por ejemplo «Demonio rtorrent». En el comando escribimos el nombre del demonio seguido del argumento de inicio, es decir, «rtdaemon start«.

Eso es todo. Un último consejo antes de finalizar el tip: Si usáis el demonio os recomiendo que editéis el fichero de configuración de rtorrent (/home/tu_usuario/.rtorrent.rc) y le pongáis un tope de subida y descarga según vuestra conexión y criterio.

Suponiendo que queremos descarga ilimitada y 15 KB de subida, tendríamos que añadir/editar estas dos opciones en dicho fichero de configuración:

download_rate = 0
upload_rate = 15

Ahora sí, hemos acabado. Espero que os haya servido de ayuda 😉

Más tips entre tuxes y pepinos

Acciones

Information

33 responses

4 03 2008
Crafol

EXELENTE!!!!!!! Mañana lo pongo en practica. Era lo unico que le faltaba a rtorrent 🙂

4 03 2008
Queni

Yo uso Azureus, descarga en mi compu a los decentes 100 Kb/s, aun asi instalare rtorrent a ver que tal esta, gracias ceec…

4 03 2008
Oscar

Para saber, como se agregaría en consola al rc.d ?

4 03 2008
Inka

@ Queni: Azureus consume muchiiiiiiiiiiiiiiiiisima RAM. Yo también lo usaba pero me pasé a rtorrent.

4 03 2008
sowenesti

yo uso el transmission para los trackers privados por los que pasto… y tengo que decir que es excelente en todos los sentidos

4 03 2008
alf52

Yo también utilizo rtorrent, solo que lo tengo en un viejo PII ejecutándose todo el tiempo 🙂

Por defecto al arrancar se inicia una cuenta de usuario en una tty y en su bash le puse que al entrar se ejecutase el rtorrent, que configurado de una manera, deja a otros usuarios poder ver que está haciendo, así de este modo, si se me apaga o reinicia el ordenador, él solo vuelve a iniciar tanto la sesión del usuario como el rtorrent.

Tu opción me parece mucho mas elegante 🙂

4 03 2008
Shavo

Gracias por la respuesta tan rapida y completa 😀
Como siempre, tu blog es el mejor 😛

Saludos!

4 03 2008
Manuel

Genial idea, buena forma de automatizar las cosas, este tipo de scripts me encantan! Gracias

4 03 2008
Zod

si consume mucha ram el azureus, pero si tienes una ram de por lo menos un GB ni la sientes(sin albur)

4 03 2008
maRc

Un truquillo más si lo dejais como demonio. Para establecer una programación de la velocidad de subida/bajada, editais el .rtorrent.rc, añadiendo las siguientes líneas:

schedule = apuja_max,00:00:00,24:00:00,upload_rate=13
schedule = apuja_min,08:00:00,24:00:00,upload_rate=5

Así, a las 12 de la noche se pone a subir a tope y las 8 de la mañana vuelve a la normalidad.

5 03 2008
Pepico

soy pepico

5 03 2008
CeeC

@ Oscar: Metiéndolo en el runlevel adecuado, sin embargo sería complicarte la vida bastante. Te recomiendo que lo hagas como comento en el tip, creo que es la solución más rápida y sencilla.

@ maRc: Gracias por el aporte. Me alegra verte por estos lares 😉

Saludos.

5 03 2008
Diego

muy interesante, estuve viendo en la pagina de rtorrent que hay algunas interfaces graficas para usarlas remotamente e incluso via web.
Esto me resulta muy interesante para poner una pc exclusivamente a descargar torrents en casa y controlarlo via web en mi red ..
ahora la pregunta es, que sugeris para que rtorrent inicie solo como un servicio? sin tener que loguearse con un usuario.ademas que recomendas en este caso para ubicar los archivos de configuracion, las descargas se harian en otra paricion montada en /mnt, convendria alojar los archivos de configuracion en /etc/share o algo asi?
saludos y muy bueno el blog.

1 04 2008
elkaribou

Wenasss..

He estado haciendo pruebas pero tras un par de minutos me aparece el siguiente error.

[File chunk write error: No existe el dispositivo.]

Le he dado permiso a todo el mundo en la carpeta de descargas, la partición está en Ext3.

He visto que en la otra entrada ya se comentó algo de esto pero nada de lo que aparece lo ha solucionado.

Gracias de antemano

2 04 2008
CeeC

Hola elkaribou.

Preferiría que lo comentaras en la entrada sobre rtorrent y no sobre el script para tener bien organizada toda la información con las respectivas cuestiones que puedan surgir.

Saludos.

2 04 2008
elkaribou

Ok.

Planteo la duda en la entrada sobre rtorrent.

Muchas gracias…

13 04 2008
azazelo

Hola,

tu script está bien, sólo que en mi Debian cuando arranca y ejecuta el script lo hace como root, no uso ubuntu y he añadido el daemon con update-rc.

Para que me funcione he cambiado la línea:

screen -d -m /usr/local/bin/rtorrent

por:

su – tu_usuario -c ‘screen -d -m /usr/local/bin/rtorrent’

para que lo ejecute con mi usuario y luego pueda verlo con screen -r.

saludos,

Azazelo

15 04 2008
CeeC

La idea del script era la de ejecutarse por el propio usuario, bien sea manualmente o al iniciar sesión. De esa forma el proceso pertenece al propio usuario, independientemente del sistema usado.

Sin embargo si lo metes en el update-rc el proceso ya es del sistema a no ser que le indiques el propietario de la forma en que lo has hecho.

Saludos.

16 04 2008
azazelo

mi idea era como automatizar el inicio de rtorrent y así llegué a tu script.
De esta manera no tengo que preocuparme de iniciarlo manualmente o de hacer login en el «servidor de descargas casero».

La única pega que noto al meterlo en el update-rd es la de que no puedo para el rtorrent manualmente como lo hacía hasta ahora con ctrl+q, sino que tengo que salir a una consola y pararlo desde el script de arranque… curioso…

gracias por tu escript.

saludos,

16 04 2008
SuBLiME

Me funciono perfecto en debian etch, lo unico que modique es la parte del inicio el cual lo levanto con el cron. Puse crontab -e y alli le agrege la linea «0 20 * * * rtdaemon start», de esta forma lo levanto todos los dias a las 8 de la noche que es cuando ya nadie utiliza internet en mi trabajo 😉
Exelente pagina muchachos, mis felicitaciones desde MardelPlata|BuenosAires|Argentina

17 04 2008
CeeC

Me alegro 😉

Saludos.

11 05 2008
manuel

Hola una duda… el apagar la maquina o cerrar el rtorrent con stop, es algo un tanto «a la mala», lo digo porque a la hora de iniciarlo de nuevo tiene que hashear los archivos… algo lentoo
He visto que una vez iniciado el rtorrent con el script, se puede cerrar con un C-a q.. y sale con suavidad. Se podra hacer algo parecido para matar el proceso automaticamnte??

saludos, gran aporte por cierto

23 06 2008
Rtdaemon v2 « Xynco and LoS Fusion

[…] bien, él mismo lo solucionó con un script, y como me gustó, decidí darle un retoque para arreglar un par de cosas que eran un […]

23 07 2008
Teo

Quiero que se inicie rtorrent al iniciar el ordenador (no al hacer login), y que se ejecute como mi usuario (con mi /home/usuario/rtorrentrc) para poder atenderlo luego al hacer login.

Tengo Debian en el servidor que se enciende automáticamente si va la luz y vuelve (por un jumper en la placa base).

Cómo lo hago. ¿Meto un enlace al script en el /etc/init.d/? ¿y el usuario? No lo tengo muy claro…

Gracias de antemano.

1 09 2008
bagusajalf

Lo primero, gracias por tu script.

Como el blog está cerrado y no sé si aún lees los comentarios, no sñe cuanta utilidad tendrá mi comentario o si recibire respuesta.
Iba a comentar una cosilla sobre la forma de cerrar el rtorrent del mismo pero ya lo expuso manuel en los comentarios hace unos meses:

Cerrar directamente screen es un poco «bestia», no informa a los trackers de que has cerrado el cliente (conveniente sobretodo en trackers privados con control de ratio) y hace inútil el configurar el aspecto «sesión» de rtorrent, pues al abrirlo de nuevo, toca rehashear todo. Lo ideal es usar un método de «cerrado suave». En la sección de manual de suario del wiki de rtorrent (http://libtorrent.rakshasa.no/wiki/RTorrentUserGuide) comentan qué tipo de cierre provocan las señales SIGINT, SIGTERM, SIGWINCH. Lo ideal es usar la primera (con «kill -2» pues SIGINT=2), puesto que da un tiempo de gracia a rtorrent para informar a los trackers y «guardar sesión».

A mí me ha bastado con comentar la línea

screen -X quit

de tu script y añadir encima

kill -2 `pidof rtorrent`

(ojito con esas comillas). Lo malo es que no sé si cierra o no screen, o si conviene dejar debajo sin comentar la línea para cerrar screen, temiendo que no espere a que el kill -2 haga efecto. No he hecho pruebas aún.

9 09 2008
Carlos

yo también adapté el script para cerrar el rtorrent correctamente, usando kill -2.

cuando ponés kill -s 2 `pidof rtorrent` cierra correctamente y si es la única ventana de esa sesión de screen también termina screen. En el contexto del script propuesta si ocurre esto último va a dar error (quiere matar una sesión de screen que ya no existe), habría que corregir esa parte nada más.

Yo apelé al facilismo y puse

echo -n «Parando rtorrent…»
kill -s 2 `pidof rtorrent` && sleep 5s && echo «[OK rtorrent detenido]»
screen -S rtorrent -X screeen && echo «[Creando ventana extra por si era la última»]
screen -S rtorrent -X quit && echo «[OK screen terminado]» || error 3

saludos desde Mar del Plata, argentina

15 10 2008
hernan

oye amigo cuando hago el comando rtdaemon me sale este error que sera?

There are screens on:
6263..linux-w4xp (Detached)
5794.pts-1.linux-w4xp (Detached)
There is no screen to be detached.

29 01 2009
convolucionado

El enlace al script no funciona. Lo puedes poner en algún otro sitio?

Saludos.

15 06 2009
Excalibur

Efectivamente, el enlace al script no funciona.Puede alguien enviarlo a un tal excalibur EN EL SERVIDOR asturlinux Puntito org?
Gracias por el tutorial. En cuanto tenga el script seguro que lo pongo en práctica. Me ha encantado rtorrent…

29 06 2009
12 01 2011
Script para usar rtorrent como daemon - Tips.cl

[…] Por MigueliTUX Jan.12, 2011, categoría Linux Buscando por la red, encontré el siguiente TIPS https://tuxpepino.wordpress.com/2008/03/04/tip-script-para-usar-rtorrent-como-daemon/ […]

28 01 2012
chamullo

la URL del script publicada en el artículo está caída. Para bajarlo:
wget http://sites.google.com/site/xonosweb/Home/rtdaemon && sudo mv rtdaemon /usr/bin

12 12 2012
Convierte tu Raspberry Pi en un servidor de descargas. rTorrent « Bokunoshumi

[…] cuando lo deseemos. Para usar estas características, hemos de descargar y usar un pequeño script cortesía de CeeC, para lo que […]

Replica a sowenesti Cancelar la respuesta