Недавно мы установили консольный торрент клиент для 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 вообще. Теперь он будет запущен всегда.