Форум русскоязычного сообщества Ubuntu


Хотите сделать посильный вклад в развитие Ubuntu и русскоязычного сообщества?
Помогите нам с документацией!

Автор Тема: Не запускается rtorrent  (Прочитано 2048 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн nialiv

  • Автор темы
  • Любитель
  • *
  • Сообщений: 77
    • Просмотр профиля
Не запускается rtorrent
« : 10 Января 2018, 17:48:16 »
После установки и настройки на домашнем сервере программы rtorrent, не могу настроить его автоматический запуск. Торрент клиент не запускается после старта системы, не загружает торрент-файлы из указанного каталога, а при запуске его вручную работает только, пока к серверу подключен компьютер, с которого производится управление.
Привожу состав конфигурационных файлов:

/home/user/rtorrent.rc
#минимальное число пиров на торрент
min_peers = 1
 
#максимальное число пиров на торрент
max_peers = 1000
 
#максимальная скорость загрузки
download_rate = 0
 
#максимальная скорость отдачи. 0 - не ограничена
upload_rate = 0
 
#каталог для сохранения закачек или откуда будут сидироваться торренты.
directory = /home/samba/user/downloads/
 
#каталог куда будет сохраняться состояние торрентов.
#Здесь, в этом примере, они сохраняются в папку  session
session = /home/samba/user/session/
 
#rtorrent каждые 5 секунд проверяет этот каталог на новые *.torrent файлы
#и если они есть то ставит их на закачку
schedule = watch_directory,5,5,load_start=/home/samba/user/torrents/*.torrent

## Изменено мной
#проверяет каталоги 2 и 3 на новые *.torrent файлы и сохраняет закачки в соответствующие папки
#  schedule = watch_directory_2,5,5,"load_start=/home/user/torrent_auto_load_2/*.torrent,
#  d.set_directory=/home/user/download2"
#  schedule = watch_directory_3,5,5,"load_start=/home/user/torrent_auto_load_3/*.torrent,
#  d.set_directory=/home/user/download3"
 
#номер порта (или нескольких портов) который открывает клиент для обмена данными
port_range = 40890-40890
 
#случайный выбор порта для обмена данными. В данном случае он отключён
port_random = no
 
#проверять хэш торрента после закачки
check_hash = yes
 
#сохранять сессию
session_save = yes
 
#принимать зашифрованные входящие соединения, устанавливать незашифрованные исходящие соединения,
#если возвращает ошибку, повторять с шифрованием, предпочитать открытый текст после установления
#зашифрованного соединения
encryption = allow_incoming,enable_retry,prefer_plaintext
 
#использовать udp
use_udp_trackers = yes
 
# Разрешает работу DHT для безтрекерных торрентов или для случаев, когда все ретрекеры лежат
# (не работают).
# Может принимать значения "disable" (для полного отключения DHT), "off" (не стартует с DHT),
# "auto" (Включает DHT при возможности), или "on" (принудительно включает DHT).
# Значение DHT по умолчанию "off". Для правильной работы DHT каталог сеансов "session" должен
# быть определен.

dht = auto
#
# UDP порт, используемый DHT.
#
dht_port = 6881
 
# Принудительно устанавливает кодировку UTF-8 для xmlrpc.
# Рекомендуется для устранения проблем при использовании в
# наименованиях торрентов символов кириллицы. Актуально для
# GUI, работающих через xmlrpc.
encoding_list = UTF-8

Файл /etc/systemd/system/rtorrent.service
[Unit]
Description=rTorrent
After=network.target
 
[Service]
Type=forking
KillMode=none
User=user
ExecStart=/usr/bin/screen -dmfa -S rtorrent /usr/bin/rtorrent
ExecStop=/usr/bin/bash -c "test `pidof rtorrent` && killall -w -s 2 /usr/bin/rtorrent"
WorkingDirectory=%h
Restart=on-failure
 
[Install]
WantedBy=multi-user.target

Файл /etc/init.d/rtorrentInit.sh

#!/bin/sh
#############
###<Notes>###
#############
# This script depends on screen.
# For the stop function to work, you must set an
# explicit session directory using ABSOLUTE paths (no, ~ is not absolute) in your rtorrent.rc.
# If you typically just start rtorrent with just "rtorrent" on the
# command line, all you need to change is the "user" option.
# Attach to the screen session as your user with
# "screen -dr rtorrent". Change "rtorrent" with srnname option.
# Licensed under the GPLv2 by lostnihilist: lostnihilist _at_ gmail _dot_ com
##############
###</Notes>###
##############

#######################
##Start Configuration##
#######################
# You can specify your configuration in a different file
# (so that it is saved with upgrades, saved in your home directory,
# or whateve reason you want to)
# by commenting out/deleting the configuration lines and placing them
# in a text file (say /home/user/.rtorrent.init.conf) exactly as you would
# have written them here (you can leave the comments if you desire
# and then uncommenting the following line correcting the path/filename
# for the one you used. note the space after the ".".
# . /etc/rtorrent.init.conf

#Do not put a space on either side of the equal signs e.g.
# user = user
# will not work
# system user to run as
user="user"

# the system group to run as, not implemented, see d_start for beginning implementation
# group=`id -ng "$user"`

# the full path to the filename where you store your rtorrent configuration
config="`su -c 'echo $HOME' $user`/.rtorrent.rc"

# set of options to run with
options=""

# default directory for screen, needs to be an absolute path
base="`su -c 'echo $HOME' $user`"

# name of screen session
srnname="rtorrent"

# file to log to (makes for easier debugging if something goes wrong)
logfile="/var/log/rtorrentInit.log"
#######################
###END CONFIGURATION###
#######################
PATH=/usr/bin:/usr/local/bin:/usr/local/sbin:/sbin:/bin:/usr/sbin
DESC="rtorrent"
NAME=rtorrent
DAEMON=$NAME
SCRIPTNAME=/etc/init.d/$NAME

checkcnfg() {
    exists=0
    for i in `echo "$PATH" | tr ':' '\n'` ; do
        if [ -f $i/$NAME ] ; then
            exists=1
            break
        fi
    done
    if [ $exists -eq 0 ] ; then
        echo "cannot find rtorrent binary in PATH $PATH" | tee -a "$logfile" >&2
        exit 3
    fi
    if ! [ -r "${config}" ] ; then
        echo "cannot find readable config ${config}. check that it is there and permissions are appropriate" | tee -a "$logfile" >&2
        exit 3
    fi
    session=`getsession "$config"`
    if ! [ -d "${session}" ] ; then
        echo "cannot find readable session directory ${session} from config ${config}. check permissions" | tee -a "$logfile" >&2
        exit 3
    fi
}
d_start() {
  [ -d "${base}" ] && cd "${base}"
  stty stop undef && stty start undef
  su -c "screen -ls | grep -sq "\.${srnname}[[:space:]]" " ${user} || su -c "screen -dm -S ${srnname} 2>&1 1>/dev/null" ${user} | tee -a "$logfile" >&2
  # this works for the screen command, but starting rtorrent below adopts screen session gid
  # even if it is not the screen session we started (e.g. running under an undesirable gid
  #su -c "screen -ls | grep -sq "\.${srnname}[[:space:]]" " ${user} || su -c "sg \"$group\" -c \"screen -fn -dm -S ${srnname} 2>&1 1>/dev/null\"" ${user} | tee -a "$logfile" >&2
  su -c "screen -S "${srnname}" -X screen rtorrent ${options} 2>&1 1>/dev/null" ${user} | tee -a "$logfile" >&2
}

d_stop() {
    session=`getsession "$config"`
    if ! [ -s ${session}/rtorrent.lock ] ; then
        return
    fi
    pid=`cat ${session}/rtorrent.lock | awk -F: '{print($2)}' | sed "s/[^0-9]//g"`
    if ps -A | grep -sq ${pid}.*rtorrent ; then # make sure the pid doesn't belong to another process
        kill -s INT ${pid}
    fi
}

getsession() {
    session=`cat "$1" | grep "^[[:space:]]*session[[:space:]]*=" | sed "s/^[[:space:]]*session[[:space:]]*=[[:space:]]*//" `
    echo $session
}

checkcnfg

case "$1" in
  start)
    echo -n "Starting $DESC: $NAME"
    d_start
    echo "."
    ;;
  stop)
    echo -n "Stopping $DESC: $NAME"
    d_stop
    echo "."
    ;;
  restart|force-reload)
    echo -n "Restarting $DESC: $NAME"
    d_stop
    sleep 1
    d_start
    echo "."
    ;;
  *)
    echo "Usage: $SCRIPTNAME {start|stop|restart|force-reload}" >&2
    exit 1
    ;;
esac

exit 0

Выполнил команды:

chmod +x rtorrentInit.sh

chown root:root rtorrentInit.sh

update-rc.d rtorrentInit.sh defaults

Пробовал сделать запуск вручную
/etc/init.d/rtorrentInit.sh startОднако rtorrent даже не появляется в списке запущенных процессов. Запускал rtorrtent вручную, зайдя в папку с торрент файлами и выполнив команду
/home/samba/user/downloads rtorrent *
Однако процесс загрузки идёт только пока открыта сессия с моего компьютера на сервере, стоит только закрыть сессию и закачка прекращается и больше не возобновляется.

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6754
  • 20% Cooler
    • Просмотр профиля
Re: Не запускается rtorrent
« Ответ #1 : 10 Января 2018, 20:20:06 »
версия ubuntu? И зачем вам вам два разных способа автостарта (init и systemd)? Выберите что-то одно.

И если уж говорим о systemd - не забыли после активировать сервис?
sudo systemctl enable rtorrent
sudo systemctl start rtorrent
также, неплохо было б увидеть вывод
systemctl status rtorrent
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн nialiv

  • Автор темы
  • Любитель
  • *
  • Сообщений: 77
    • Просмотр профиля
Re: Не запускается rtorrent
« Ответ #2 : 11 Января 2018, 18:47:37 »
Цитировать
версия ubuntu? И зачем вам вам два разных способа автостарта (init и systemd)? Выберите что-то одно.
Версия Ubuntu 16.04.3 server AMD64. Пробовал и тот и другой способы, результат нулевой.
Цитировать
И если уж говорим о systemd - не забыли после активировать сервис?
Да, конечно, активировал. В случае использования
rtorrentInit.sh, возникла трудность со скачиванием файла, однако нашёл его исходник, добавил в него имя пользователя, сделал исполняемым chmod +x rtorrentInit.sh, назначил владельца root chown root:root rtorrentInit.sh, поместил его в /etc/init.d/, включил в автозагрузку update-rc.d rtorrentInit.sh defaults. Для верности запустил вручную /etc/init.d/rtorrentInit.sh start. Результат нулевой. По другому способу создал небольшой файл rtorrent.service и поместил его в /etc/systemd/system/ также делал все необходимые действия но результата тоже нет.
Вопрос решился неожиданно просто, установил окружение рабочего стола Lxde, установил приложения vino, для удалённого управления рабочим столом и transmission, вместо rtorrent, всё настроил, всё работает.

Оффлайн snowin

  • Активист
  • *
  • Сообщений: 883
    • Просмотр профиля
Re: Не запускается rtorrent
« Ответ #3 : 11 Января 2018, 20:38:58 »
chown root:root rtorrentInit.sh
как мило,
какой говоришь у тя айпи?

Смысл сего выяснить не удалось, поэтому предупреждение по п. 2.3 Правил (5%)- Дмитрий Бо
« Последнее редактирование: 12 Января 2018, 10:26:32 от Дмитрий Бо »

Оффлайн ALiEN

  • Администратор
  • Старожил
  • *
  • Сообщений: 6754
  • 20% Cooler
    • Просмотр профиля
Re: Не запускается rtorrent
« Ответ #4 : 11 Января 2018, 20:50:33 »
snowin:2funny:

nialiv, рекомендую всё-таки разобраться в настройке systemd
(Нажмите, чтобы показать/скрыть)

« Последнее редактирование: 11 Января 2018, 20:53:22 от ALiEN175 »
🖥 AsRock B550M Pro4 :: AMD Ryzen 5 3600 :: 16 GB DDR4 :: AMD Radeon RX 6600 :: XFCE
💻 ACER 5750G :: Intel Core i5-2450M :: 6 GB DDR3 :: GeForce GT 630M :: XFCE

Оффлайн Дмитрий Бо

  • Погонщик серверов
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 3549
  • Я не техподдержка, я за порядком слежу
    • Просмотр профиля
Re: Не запускается rtorrent
« Ответ #5 : 12 Января 2018, 09:00:20 »
как мило,
какой говоришь у тя айпи?
не уловил прикола
скрипт можно запускать не только от имени владельца, не?

Оффлайн snowin

  • Активист
  • *
  • Сообщений: 883
    • Просмотр профиля
Re: Не запускается rtorrent
« Ответ #6 : 12 Января 2018, 10:08:36 »
скрипт можно запускать не только от имени владельца, не?
я наверное грубый и не женственный, потому прямо в лоб - сам понял чего написал?
скрипт обязательно должен запускаться от рута?
хотя это, конечно же не относится к данной теме
поэтому да - это прикол

Оффлайн nialiv

  • Автор темы
  • Любитель
  • *
  • Сообщений: 77
    • Просмотр профиля
Re: Не запускается rtorrent
« Ответ #7 : 15 Января 2018, 21:31:34 »
Решить проблему удалось установкой Lxde и сначала программы transmission, но и она оказалась не без изъянов, возникала ошибка при автозапуске торрент файлов. Эта же проблема была и на прежней ОС (Debian 7) домашнего сервера. Полностью избавиться от проблемы удалось поллным удалением rtorrent и transmission очисткой системы от остатков программ и установкой qbittorrent.  Программа начала работать, что называется "с разбегу".

 

Страница сгенерирована за 0.11 секунд. Запросов: 26.