 Недавно мы установили консольный торрент клиент для FreeBSD - rtorrent. Сегодня займёмся настройкой rtorrent как сервиса. Не будем же мы заходить каждый раз при перезагрузке нашего домашнего сервера и запускать вручную. Для меня необходимые требования:
Недавно мы установили консольный торрент клиент для FreeBSD - rtorrent. Сегодня займёмся настройкой rtorrent как сервиса. Не будем же мы заходить каждый раз при перезагрузке нашего домашнего сервера и запускать вручную. Для меня необходимые требования:
- автозапуск rtorrent при старте системы
- возможность зайти с консоли в ncurses интерфейс
Для реализации этих фич нам потребуется ещё одна программа - screen. Это менеджер консольных сессий. Нужен он для возможности просмотреть интерфейс rtorrent из консоли, мало ли потребуется. Итак, устанавливаем screen:
| 
 | 
Следущий шаг - пишем скрипт запуска rtorrent из screen:
#!/bin/sh
user="maf"
fpid="/usr/home/maf/.session_rtorrent/rtorrent.pid"
pid="`ps auxc | grep rtorrent | grep $user| awk '{print $2}'`"
case "$1" in
start)
echo "Starting rtorrent & screen..."
su - $user -c '/usr/local/bin/screen -S rt -d -m /usr/local/bin/rtorrent'
ps auxc | grep rtorrent | grep $user | awk '{print $2}' > $fpid
;;
stop)
echo "Stopping rtorrent & screen..."
/bin/kill -9 $pid
rm -f $fpid
;;
restart)
echo "Restarting rtorrent & screen..."
/bin/kill -9 $pid
rm -f $fpid
sleep 3
echo "Starting rtorrent & screen..."
su - $user -c '/usr/local/bin/screen -S rt -d -m /usr/local/bin/rtorrent'
ps axc | grep rtorrent | awk '{print $1}' > $fpid
;;
status)
echo "rtorrent running with pid $pid"
;;
*)
echo "Usage: `basename $0` {start|stop}" >&2
exit 64
;;
esac
exit 0
Это мой рабочий скрипт. Работает уже давно, сбоев я не замечал. Сохраняем его /usr/local/etc/rc.d/rt. Не забываем сделать скрипт исполняемым:
| 
 | 
И запихиваем в автозагрузку:
| 
 | 
Добавив строку:
[...] /usr/local/etc/rc.d/rt start
После этих действий забываем про rtorrent вообще. Теперь он будет запущен всегда.



