Нужно запускать rtorrent при загрузке системы для связки с rutorrent.
Откопал скрипт от archlinux:

linux-nas:~] # cat /usr/lib/systemd/system/rtorrent-root.service
            
             [Unit]
             Description=rTorrent
             After=syslog.target network.target remote-fs.target nss-lookup.target
            
             [Service]
             Type=forking
             User=root
             ExecStart=/usr/bin/tmux new-session -s rt -d rtorrent
             ExecStop=/usr/bin/tmux kill-session -t rt
            
             [Install]
             WantedBy=multi-user.target

Если сделать systemctl start rtorrent-root.service то все работает. Но при загрузке не работает. Кто знает почему?


linux-nas:~ # systemctl status rtorrent-root.service
rtorrent-root.service - rTorrent
          Loaded: loaded (/usr/lib/systemd/system/rtorrent-root.service; enabled)
          Active: failed (Result: exit-code) since Sat, 2013-03-23 11:05:28 MSK; 1min 2s ago
         Process: 1363 ExecStop=/usr/bin/tmux kill-session -t rt (code=exited, status=1/FAILURE)
         Process: 1315 ExecStart=/usr/bin/tmux new-session -s rt -d rtorrent (code=exited, status=0/SUCCESS)
        Main PID: 1340 (code=exited, status=0/SUCCESS)
          CGroup: name=systemd:/system/rtorrent-root.service

Mar 23 11:05:27 linux-nas.site systemd[1]: Starting rTorrent...
Mar 23 11:05:28 linux-nas.site systemd[1]: Started rTorrent.
Mar 23 11:05:28 linux-nas.site tmux[1363]: failed to connect to server
Mar 23 11:05:28 linux-nas.site systemd[1]: Unit rtorrent-root.service entered failed state
linux-nas:~ # systemctl start rtorrent-root.service
linux-nas:~ # systemctl status rtorrent-root.service
rtorrent-root.service - rTorrent
          Loaded: loaded (/usr/lib/systemd/system/rtorrent-root.service; enabled)
          Active: active (running) since Sat, 2013-03-23 11:06:54 MSK; 2s ago
         Process: 1363 ExecStop=/usr/bin/tmux kill-session -t rt (code=exited, status=1/FAILURE)
         Process: 3286 ExecStart=/usr/bin/tmux new-session -s rt -d rtorrent (code=exited, status=0/SUCCESS)
        Main PID: 3288 (tmux)
          CGroup: name=systemd:/system/rtorrent-root.service
                  ├ 3288 /usr/bin/tmux new-session -s rt -d rtorrent
                  └ 3289 rtorrent

Mar 23 11:06:54 linux-nas systemd[1]: Starting rTorrent...
Mar 23 11:06:54 linux-nas systemd[1]: Started rTorrent.

2

vovanukycc,
Делали?

# systemctl eneble rtorrent-root.service

Пакет tmux установлен?

3

Установлен, enable. в ручную команды /usr/bin/tmux new-session -s rt -d rtorrent /usr/bin/tmux kill-session -t rt работают, systemctl start rtorrent-root.service тоже работает. при загрузке

2013-03-23T11:58:56.211834+04:00 linux-nas systemd[1]: Starting rTorrent...
2013-03-23T11:58:56.225048+04:00 linux-nas systemd[1]: Started rTorrent.
2013-03-23T11:58:56.474563+04:00 linux-nas systemd[1]: rtorrent-root.service: control process exited, code=exited status=1
2013-03-23T11:58:56.505055+04:00 linux-nas systemd[1]: Unit rtorrent-root.service entered failed state

4 (23.03.2013 12:38:50 отредактировано urfin)

В /var/log/message нет никаких сообщений по отработке этого юнита (при ручном запуске и при загрузке системы)?

5

вот /var/log/messages

автостарт:

vovanukycc⇓ пишет:

Mar 23 11:05:27 linux-nas.site systemd[1]: Starting rTorrent...
Mar 23 11:05:28 linux-nas.site systemd[1]: Started rTorrent.
Mar 23 11:05:28 linux-nas.site tmux[1363]: failed to connect to server
Mar 23 11:05:28 linux-nas.site systemd[1]: Unit rtorrent-root.service entered failed state

вручную:

vovanukycc⇓ пишет:

Mar 23 11:06:54 linux-nas systemd[1]: Starting rTorrent...
Mar 23 11:06:54 linux-nas systemd[1]: Started rTorrent.

6

У Вас в юните прописан User=root, по-моему это лишнее. И еще, попробуйте закомментировать параметр ExecStop, и посмотрите, что получится. Не нравится мне эта ошибка по ExecStop.

7

Без user нельзя, он не знает где настройки взять. Если убрать - говорит что все SUCCESS, правда процесс inactive (dead), что тоже не то (

8

Оригинальные юнит файлы из арчвики:
/etc/systemd/system/rtorrent@.service
Вариант1:

[Unit]
Description=rTorrent
Requires=network.target local-fs.target

[Service]
Type=forking
User=%I
ExecStart=/usr/bin/screen -d -m -S rtorrent /usr/bin/rtorrent
ExecStop=/usr/bin/killall -w -s 2 rtorrent

[Install]
WantedBy=multi-user.target

Вариант2: (при использовании tmux)

[Unit]
Description=rTorrent
Requires=network.target local-fs.target

[Service]
Type=forking
ExecStart=/usr/bin/tmux new-session -s rt -d rtorrent
ExecStop=/usr/bin/tmux kill-session -t rt
User=%I
KillMode=none

[Install]
WantedBy=multi-user.target

9

да-да, они самые ))

Первый вариант:


linux-nas:~ # systemctl status rtorrent-root.service
rtorrent-root.service - rTorrent
          Loaded: loaded (/usr/lib/systemd/system/rtorrent-root.service; enabled)
          Active: failed (Result: exit-code) since Sat, 2013-03-23 15:10:20 MSK; 17s ago
         Process: 499 ExecStop=/usr/bin/killall -w -s 2 rtorrent (code=exited, status=1/FAILURE)
         Process: 459 ExecStart=/usr/bin/screen -d -m -S rtorrent /usr/bin/rtorrent (code=exited, status=0/SUCCESS)
        Main PID: 479 (code=exited, status=0/SUCCESS)
          CGroup: name=systemd:/system/rtorrent-root.service

Mar 23 15:10:20 linux-nas.site systemd[1]: Starting rTorrent...
Mar 23 15:10:20 linux-nas.site systemd[1]: Started rTorrent.
Mar 23 15:10:20 linux-nas.site killall[499]: rtorrent: no process found
Mar 23 15:10:20 linux-nas.site systemd[1]: Unit rtorrent-root.service entered failed state

второй вариант:

linux-nas:~ # systemctl status rtorrent-root.service
rtorrent-root.service - rTorrent
          Loaded: loaded (/usr/lib/systemd/system/rtorrent-root.service; enabled)
          Active: failed (Result: exit-code) since Sat, 2013-03-23 15:07:00 MSK; 58s ago
         Process: 799 ExecStop=/usr/bin/tmux kill-session -t rt (code=exited, status=1/FAILURE)
         Process: 455 ExecStart=/usr/bin/tmux new-session -s rt -d rtorrent (code=exited, status=0/SUCCESS)
        Main PID: 494 (code=exited, status=0/SUCCESS)
          CGroup: name=systemd:/system/rtorrent-root.service

Mar 23 15:06:58 linux-nas.site systemd[1]: Starting rTorrent...
Mar 23 15:06:59 linux-nas.site systemd[1]: Started rTorrent.
Mar 23 15:07:00 linux-nas.site tmux[799]: failed to connect to server
Mar 23 15:07:00 linux-nas.site systemd[1]: Unit rtorrent-root.service entered failed state

10 (23.03.2013 15:44:05 отредактировано vovanukycc)

В общем c User=%I  по второму варианту все включается, только только без настроек. Получается бесполезно работающая вещь. (((

11

vovanukycc пишет:

В общем c User=%I  по второму варианту все включается, только только без настроек. Получается бесполезно работающая вещь. (((

А все настройки от root?

12

да, есть пользователь user, у него ссылка на файл в /root/ с правами всем читать и всем писать

лог rtorrent

Could not read resource file: ~/.rtorrent.rc

13

vovanukycc пишет:

да, есть пользователь user, у него ссылка на файл в /root/ с правами всем читать и всем писать

То есть каталог /root полностью открыт для пользователя user? Или только этот файл? Если только этот файл, пользователь user все равно не прочитает эти настройки, поскольку не попадет в каталог /root

14 (23.03.2013 18:50:26 отредактировано vovanukycc)

Да user тут не причем, не от него же systemd работает. Да и прочитать он файл может так как ссылка на этот файл каталоге /home/user лежит.

15

У меня вообще ощущение, что KillMode=none в Opensuse не работает, а в арче пашет.

16

vovanukycc пишет:

У меня вообще ощущение, что KillMode=none в Opensuse не работает, а в арче пашет.

Давайте сделаем так. Вы мне сбрасываете содержимое файла .rtorrent.rc, можно через ЛС, а я сегодня-завтра пытаюсь разобраться в запуске, потом отписываюсь Вам.

17

vovanukycc пишет:

В общем c User=%I  по второму варианту все включается, только только без настроек. Получается бесполезно работающая вещь. (((

У Вас имя сервиса неправильное, нужно

rtorrent@.service

а у Вас

rtorrent-root.service

18

urfin⇓ пишет:

У Вас имя сервиса неправильное, нужно

rtorrent@.service

а у Вас

rtorrent-root.service

Я за последние два дня их столько раз удалял, создавал, переименовывал .. второе было с утра первое сейчас, без разницы. все равно не работает.

19

vovanukycc пишет:

Я за последние два дня их столько раз удалял, создавал, переименовывал .. второе было с утра первое сейчас, без разницы. все равно не работает.

Ну, тогда давайте попробуем мое предложение. Чтобы не ковыряться мне самому с файлом настроек, скиньте мне свой.

20 (23.03.2013 20:22:40 отредактировано vovanukycc)

.rtorrent.rc:

+ .rtorrent.rc
 cat ~root/.rtorrent.rc
#минимальное число пиров на торрент
min_peers = 1

#максимальное число пиров на торрент 
max_peers = 1000

#максимальная скорость загрузки
download_rate = 0

#максимальная скорость отдачи. 0 - не ограничена
upload_rate = 0

#каталог для сохранения закачек или откуда будут сидироваться торренты.
directory = /home/user/torrent/download/

#каталог куда будет сохраняться состояние торрентов.
#Здесь, в этом примере, они сохраняются в папку  session
session = /home/user/torrent/session/

#rtorrent каждые 5 секунд проверяет этот каталог на новые *.torrent файлы
#и если они есть то ставит их на закачку
schedule = watch_directory,5,5,load_start=/home/user/torrent/torrent_auto_load/*.torrent

#проверяет каталоги 2 и 3 на новые *.torrent файлы и сохраняет закачки в соответствующие папки
schedule = watch_directory_2,5,5,"load_start=/home/user/torrent/torrent_auto_load_2/*.torrent,d.set_directory=/home/user/torrent/download2"
schedule = watch_directory_3,5,5,"load_start=/home/user/torrent/torrent_auto_load_3/*.torrent,d.set_directory=/home/user/torrent/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

#log.execute = /home/user/torrent/rtorrent.log

инструкция Арча https://wiki.archlinux.org/index.php/RTorrent

21

OK. Завтра постараюсь к вечеру отписаться о результатах. Сегодня уже поздно заниматься. Уж полночь... ab

22

Отчитываюсь.
Проверил сначала с User=root в юните, все работает.

rtorrent.service
+ открыть спойлер

[Unit]
Description=rTorrent
Requires=network.target local-fs.target

[Service]
Type=forking
ExecStart=/usr/bin/tmux new-session -s rt -d rtorrent
ExecStop=/usr/bin/tmux kill-session -t rt
User=root
KillMode=none

[Install]
WantedBy=multi-user.target

Однако, если не существует каталог /home/user/torrent/session, указанный в .rtorrent.rc, то юнит валится с ошибкой.

# systemctl status rtorrent.service
+ открыть спойлер

rtorrent-v.service - rTorrent
          Loaded: loaded (/usr/lib/systemd/system/rtorrent-v.service; enabled)
          Active: failed (Result: exit-code) since Sun, 2013-03-24 10:01:49 NOVT; 1min 47s ago
         Process: 1476 ExecStop=/usr/bin/tmux kill-session -t rt (code=exited, status=1/FAILURE)
         Process: 534 ExecStart=/usr/bin/tmux new-session -s rt -d rtorrent (code=exited, status=0/SUCCESS)
        Main PID: 843 (code=exited, status=0/SUCCESS)
          CGroup: name=systemd:/system/rtorrent-v.service

Mar 24 10:01:46 urfin systemd[1]: Started rTorrent.
Mar 24 10:01:49 urfin tmux[1476]: failed to connect to server
Mar 24 10:01:49 urfin systemd[1]: Unit rtorrent-v.service entered failed state

При наличии этого каталога, все работает хорошо.

# systemctl status rtorrent.service
+ открыть спойлер

rtorrent-v.service - rTorrent
          Loaded: loaded (/usr/lib/systemd/system/rtorrent-v.service; enabled)
          Active: active (running) since Sun, 2013-03-24 10:05:18 NOVT; 1min 8s ago
         Process: 528 ExecStart=/usr/bin/tmux new-session -s rt -d rtorrent (code=exited, status=0/SUCCESS)
        Main PID: 858 (tmux)
          CGroup: name=systemd:/system/rtorrent-v.service
                  ├ 858 /usr/bin/tmux new-session -s rt -d rtorrent
                  └ 867 rtorrent

Mar 24 10:05:17 urfin systemd[1]: Starting rTorrent...
Mar 24 10:05:18 urfin systemd[1]: Started rTorrent.

Создайте все каталоги, прописанные в .rtorrent.rc. И можете использовать юнит. А еще лучше создать специального юзера для rtorrent, например, rtor:

+ открыть спойлер

# useradd -s /usr/sbin/nologin -d /home/rtor -g users -m rtor
создайте все каталоги для rtorrent
# mkdir -p /home/rtor/torrent/session
# mkdir /home/rtor/torrent/download
# mkdir /home/rtor/torrent/torrent_auto_load
# mkdir /home/rtor/torrent/torrent_auto_load_2
# mkdir /home/rtor/torrent/torrent_auto_load_3
# mkdir /home/rtor/torrent/download2
# mkdir /home/rtor/torrent/download3

Зайдите в каталог /home/rtor и передайте права на каталог torrent пользователю rtor

chown -R rtor.users torrent

Измените в .rtorrent.rc все вхождения /home/user на /home/rtor, а файл .rtorrent.rc перенесите с правами на чтение в /home/rtor

Замените в rtorrent.service параметр User=root на User=rtor, все, перезагружайтесь. Проверяйте после перезагрузки:

# systemctl status rtorrent.service
+ открыть спойлер

rtorrent.service - rTorrent
          Loaded: loaded (/usr/lib/systemd/system/rtorrent.service; enabled)
          Active: active (running) since Sun, 2013-03-24 10:40:53 NOVT; 1min 22s ago
         Process: 534 ExecStart=/usr/bin/tmux new-session -s rt -d rtorrent (code=exited, status=0/SUCCESS)
        Main PID: 590 (tmux)
          CGroup: name=systemd:/system/rtorrent.service
                  ├ 590 /usr/bin/tmux new-session -s rt -d rtorrent
                  └ 594 rtorrent

Mar 24 10:40:53 urfin systemd[1]: Started rTorrent.

Все работает.

23

ОК, получилось. Видать сам намудил что-то с пользователем user, а от root  косячит. Спасибо!

24 (24.03.2013 22:20:39 отредактировано urfin)

vovanukycc⇓ пишет:

а от root  косячит

Ничего не косячит. Косячит при любом пользователе, но только, если не существуют или не доступны каталоги, прописанные в ~/.rtorrent.rc, и косячит сам rtorrent, а не юнит - юнит просто начинает выходить по ошибке из-за ошибочного завершения rtorrent'а. Поскольку работа в nix'ах из-под root не рекомендуется, даже и в случае запуска через systemd, я Вам и предложил создать пользователя специально для rtorrent. Можно было и Вашего пользователя user использовать, только навести порядок с каталогами для rtorrent в домашнем каталоге пользователя user, и установить правильно права для пользователя user на эти каталоги.

25 (03.04.2013 12:03:17 отредактировано wers)

не понятно стартует rtorrent+tmux. после загрузки в процессах висит, связь с треккером есть т.к. я в списке раздающих. если добавить торрент файл ничего не происходит (не хеширует, не ставит на закачку).$ tmux attach, окно открывается и зависает. помогает только systemctl restart rtorrent.service
. с screen таже беда.

$ systemctl status rtorrent.service
rtorrent.service - Start rTorrent
      Loaded: loaded (/etc/systemd/system/rtorrent.service; enabled)
      Active: active (running) since Ср. 2013-04-03 13:55:33 EEST
     Process: 912 ExecStart=/usr/bin/tmux new-session -d -s rtorrent rtorrent (code=exited, status=0/SUCCESS)
    Main PID: 956 (tmux)
      CGroup: name=systemd:/system/rtorrent.service
          ├─956 /usr/bin/tmux new-session -d -s rtorrent rtorrent
          └─957 rtorrent
$ systemctl restart rtorrent.service
$ systemctl status rtorrent.service
rtorrent.service - Start rTorrent
      Loaded: loaded (/etc/systemd/system/rtorrent.service; enabled)
      Active: active (running) since Ср. 2013-04-03 11:08:19 EEST; 3s ago
     Process: 3109 ExecStart=/usr/bin/tmux new-session -d -s rtorrent rtorrent (code=exited, status=0/SUCCESS)
    Main PID: 3111 (tmux)
      CGroup: name=systemd:/system/rtorrent.service
          ├─3111 /usr/bin/tmux new-session -d -s rtorrent rtorrent
          └─3112 rtorrent

26

wers⇓ пишет:

не понятно стартует rtorrent+tmux

Посматрите в списке процессов есть ли rtorrent, Htop, top, или  ps, например:

ps -ax | grep rtorrent

27 (03.04.2013 12:28:18 отредактировано wers)

$ ps -ax | grep rtorrent
  957 ?        Ss     0:00 /usr/bin/tmux new-session -d -s rtorrent rtorrent
  958 pts/0    Ssl+   0:00 rtorrent
 2191 pts/1    S+     0:00 grep --color=auto rtorrent

подметил что после рестарта ID процесса всегда меняется больше 2000, тогда всё нормально.

ps -ax | grep rtorrent
 2319 ?        Ss     0:00 /usr/bin/tmux new-session -d -s rtorrent rtorrent
 2320 pts/0    Ssl+   0:00 rtorrent
 2449 pts/2    S+     0:00 grep --color=auto rtorrent