Автостарт/стоп rtorrent при запуске системы

Ответить
Аватара пользователя
Галахов Роман
Сообщения: 2349
Зарегистрирован: 26 фев 2012, 20:02
Operating system: Rosa R12.1 Fresh Plasma (HP ProBook 440 G4 (y7z81ea))
Откуда: Моск. обл. Волоколамск

Автостарт/стоп rtorrent при запуске системы

Сообщение Галахов Роман » 30 ноя 2014, 23:18

Хочу поставить rutorrent в Chroot ROSA на Synology DS 412+. Копаюсь потихоньку когда есть время. http://forum.rosalab.ru/viewtopic.php?f=11&t=4187
Даже включение/выключение в теории понял как делать (осталось протестировать как будет работать в реальности)
Теперь столкнулся с проблемой настройки Автостарт/стоп rtorrent при запуске/выключении системы. Вроде бы уже должно быть через systemd
А значит, примерно, так

Код: Выделить всё

systemctl stop rtorrent.service
systemctl start rtorrent.service
systemctl disable rtorrent.service
systemctl enable rtorrent.service
Но установив rtorrent на ноут (для теста) и проверив запуск через консоль
1.png
, я не нашел в службах "Настройки рабочего стола - Управление системными службами" что-то похожее на rtorrent.
Или до сих пор rtorrent не переведен на systemd и запускается скриптами типа

Код: Выделить всё

/etc/init.d/rtorrent start
?
Rosa 2021.1 Fresh KDE5 x64-86 (HP ProBook 440 G4 (y7z81ea))

Аватара пользователя
slavyanix
Сообщения: 888
Зарегистрирован: 04 авг 2012, 20:05
Operating system: Rosa Fresh R10

Re: Автостарт/стоп rtorrent при запуске системы

Сообщение slavyanix » 01 дек 2014, 00:45

а сам systemctl видит этот процесс? может он и правда еще на инит сервисах. если система его видит как сервис системд то все просто по идее. впрочем можно сделать еще проще. почему бы не использовать cron или at при запуске системы. в этом случае любую прогу можно запустить из bash скрипта с нужными опциями. ведь этот способ хоть и стар как сам юникс , но довольно надежен.

Аватара пользователя
Галахов Роман
Сообщения: 2349
Зарегистрирован: 26 фев 2012, 20:02
Operating system: Rosa R12.1 Fresh Plasma (HP ProBook 440 G4 (y7z81ea))
Откуда: Моск. обл. Волоколамск

Re: Автостарт/стоп rtorrent при запуске системы

Сообщение Галахов Роман » 01 дек 2014, 07:53

slavyanix писал(а):а сам systemctl видит этот процесс? может он и правда еще на инит сервисах. если система его видит как сервис системд то все просто по идее. впрочем можно сделать еще проще. почему бы не использовать cron или at при запуске системы. в этом случае любую прогу можно запустить из bash скрипта с нужными опциями. ведь этот способ хоть и стар как сам юникс , но довольно надежен.
Вопрос как выявить это. Сейчас у меня на ноуте rtorrent без нагрузки (нет закачек/раздач), и нагрузить его я не могу. Когда запускаю из консоли, окно показывается. Но может как раз запрос в консоли его и включает/выключает - в списке задач процесс rtorrent появляется, только, при "включении" его в консоли с привязкой к консоли. Видимо без нагрузки это не выявить. По этому и спросил тут - может кто подскажет.
Rosa 2021.1 Fresh KDE5 x64-86 (HP ProBook 440 G4 (y7z81ea))

Аватара пользователя
slavyanix
Сообщения: 888
Зарегистрирован: 04 авг 2012, 20:05
Operating system: Rosa Fresh R10

Re: Автостарт/стоп rtorrent при запуске системы

Сообщение slavyanix » 01 дек 2014, 08:22

pstree что показывает? по идее все процессы должна показать с их родителями.

Аватара пользователя
Галахов Роман
Сообщения: 2349
Зарегистрирован: 26 фев 2012, 20:02
Operating system: Rosa R12.1 Fresh Plasma (HP ProBook 440 G4 (y7z81ea))
Откуда: Моск. обл. Волоколамск

Re: Автостарт/стоп rtorrent при запуске системы

Сообщение Галахов Роман » 01 дек 2014, 19:13

slavyanix писал(а):pstree что показывает? по идее все процессы должна показать с их родителями.
Rtorrent не запущен в консоли по команде rtorrent:

Код: Выделить всё

[roman@roman-TravelMate-8372 ~]$ pstree
systemd─┬─ModemManager───2*[{ModemManager}]
        ├─NetworkManager─┬─dhclient
        │                └─3*[{NetworkManager}]
        ├─_plutorun─┬─_plutoload
        │           └─_plutorun───pluto─┬─_pluto_adns
        │                               └─3*[pluto]
        ├─accounts-daemon───2*[{accounts-daemo}]
        ├─acpid
        ├─akonadi_control─┬─3*[akonadi_agent_l───{akonadi_agent_}]
        │                 ├─akonadi_baloo_i───5*[cat]
        │                 ├─akonadi_maildis
        │                 ├─akonadi_mailfil
        │                 ├─akonadi_migrati
        │                 ├─akonadi_newmail
        │                 ├─akonadi_notes_a
        │                 ├─akonadiserver─┬─mysqld───40*[{mysqld}]
        │                 │               └─20*[{akonadiserver}]
        │                 └─{akonadi_contro}
        ├─at-spi-bus-laun───2*[{at-spi-bus-lau}]
        ├─atd
        ├─automount───2*[{automount}]
        ├─avahi-daemon───avahi-daemon
        ├─avahi-dnsconfd
        ├─baloo_file
        ├─bluetoothd
        ├─colord───2*[{colord}]
        ├─crond
        ├─cups-browsed
        ├─cupsd
        ├─2*[dbus-daemon]
        ├─dbus-launch
        ├─gam_server
        ├─gconfd-2
        ├─gvfs-gphoto2-vo───{gvfs-gphoto2-v}
        ├─gvfs-mtp-volume───{gvfs-mtp-volum}
        ├─gvfs-udisks2-vo───2*[{gvfs-udisks2-v}]
        ├─gvfsd───{gvfsd}
        ├─gvfsd-fuse───4*[{gvfsd-fuse}]
        ├─hddtemp
        ├─homerunviewer───2*[{homerunviewer}]
        ├─kactivitymanage───6*[{kactivitymanag}]
        ├─kded4───{kded4}
        ├─kdeinit4─┬─applet.py───{applet.py}
        │          ├─deja-dup-monito───2*[{deja-dup-monit}]
        │          ├─firefox─┬─kmozillahelper
        │          │         └─53*[{firefox}]
        │          ├─kio_desktop
        │          ├─3*[kio_file]
        │          ├─kio_thumbnail
        │          ├─3*[kio_trash───{kio_trash}]
        │          ├─klauncher
        │          ├─ksmserver─┬─kwin───{kwin}
        │          │           └─{ksmserver}
        │          ├─mdkapplet
        │          ├─parcellite───{parcellite}
        │          └─xsettings-kde───3*[{xsettings-kde}]
        ├─kdm─┬─X───2*[{X}]
        │     └─kdm───startkde───kwrapper4
        ├─kglobalaccel
        ├─klipper
        ├─kmix───{kmix}
        ├─knotify4───2*[{knotify4}]
        ├─konsole─┬─bash───ping
        │         ├─bash───pstree
        │         └─{konsole}
        ├─krunner───{krunner}
        ├─ksyndaemon
        ├─kuiserver
        ├─logger
        ├─mandi
        ├─mdadm
        ├─nmbd
        ├─nscd───9*[{nscd}]
        ├─ntpd
        ├─openl2tpd
        ├─plasma-desktop─┬─ksysguardd
        │                └─3*[{plasma-desktop}]
        ├─polkit-kde-auth───{polkit-kde-aut}
        ├─polkitd───4*[{polkitd}]
        ├─preload
        ├─pulseaudio─┬─gconf-helper
        │            └─2*[{pulseaudio}]
        ├─racoon
        ├─rosa-launcher───3*[{rosa-launcher}]
        ├─rpcbind
        ├─rsyslogd───3*[{rsyslogd}]
        ├─rtkit-daemon───2*[{rtkit-daemon}]
        ├─s2u
        ├─sd_dummy───{sd_dummy}
        ├─sensord
        ├─smartd
        ├─smbd───smbd
        ├─speech-dispatch───{speech-dispatc}
        ├─sshd
        ├─start_kdeinit
        ├─systemd───(sd-pam)
        ├─systemd-hostnam
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─udisksd───4*[{udisksd}]
        ├─upowerd───2*[{upowerd}]
        ├─usbmuxd
        ├─wpa_supplicant
        ├─xinetd
        └─xl2tpd
[roman@roman-TravelMate-8372 ~]$ 
Как видите rtorrent'а нет.
Запускаю rtorrent в консоли:

Код: Выделить всё

[roman@roman-TravelMate-8372 ~]$ pstree    
systemd─┬─ModemManager───2*[{ModemManager}]
        ├─NetworkManager─┬─dhclient
        │                └─3*[{NetworkManager}]
        ├─_plutorun─┬─_plutoload
        │           └─_plutorun───pluto─┬─_pluto_adns
        │                               └─3*[pluto]
        ├─accounts-daemon───2*[{accounts-daemo}]
        ├─acpid
        ├─akonadi_control─┬─3*[akonadi_agent_l───{akonadi_agent_}]
        │                 ├─akonadi_baloo_i───5*[cat]
        │                 ├─akonadi_maildis
        │                 ├─akonadi_mailfil
        │                 ├─akonadi_migrati
        │                 ├─akonadi_newmail
        │                 ├─akonadi_notes_a
        │                 ├─akonadiserver─┬─mysqld───40*[{mysqld}]
        │                 │               └─20*[{akonadiserver}]
        │                 └─{akonadi_contro}
        ├─at-spi-bus-laun───2*[{at-spi-bus-lau}]
        ├─atd
        ├─automount───2*[{automount}]
        ├─avahi-daemon───avahi-daemon
        ├─avahi-dnsconfd
        ├─baloo_file
        ├─bluetoothd
        ├─colord───2*[{colord}]
        ├─crond
        ├─cups-browsed
        ├─cupsd
        ├─2*[dbus-daemon]
        ├─dbus-launch
        ├─gam_server
        ├─gconfd-2
        ├─gvfs-gphoto2-vo───{gvfs-gphoto2-v}
        ├─gvfs-mtp-volume───{gvfs-mtp-volum}
        ├─gvfs-udisks2-vo───2*[{gvfs-udisks2-v}]
        ├─gvfsd───{gvfsd}
        ├─gvfsd-fuse───4*[{gvfsd-fuse}]
        ├─hddtemp
        ├─homerunviewer───2*[{homerunviewer}]
        ├─kactivitymanage───6*[{kactivitymanag}]
        ├─kded4───{kded4}
        ├─kdeinit4─┬─applet.py───{applet.py}
        │          ├─deja-dup-monito───2*[{deja-dup-monit}]
        │          ├─firefox─┬─kmozillahelper
        │          │         └─48*[{firefox}]
        │          ├─klauncher
        │          ├─ksmserver─┬─kwin───{kwin}
        │          │           └─{ksmserver}
        │          ├─mdkapplet───mdkapplet───consolehelper-g─┬─userhelper───urpmi.update───wget
        │          │                                         └─{consolehelper-}
        │          ├─parcellite───{parcellite}
        │          └─xsettings-kde───3*[{xsettings-kde}]
        ├─kdm─┬─X───2*[{X}]
        │     └─kdm───startkde───kwrapper4
        ├─kglobalaccel
        ├─klipper
        ├─kmix───{kmix}
        ├─knotify4───2*[{knotify4}]
        ├─konsole─┬─bash───ping
        │         ├─bash───rtorrent───2*[{rtorrent}]
        │         ├─bash───pstree
        │         └─{konsole}
        ├─krunner───{krunner}
        ├─ksyndaemon
        ├─kuiserver
        ├─logger
        ├─mandi
        ├─mdadm
        ├─nmbd
        ├─nscd───9*[{nscd}]
        ├─ntpd
        ├─openl2tpd
        ├─plasma-desktop─┬─ksysguardd
        │                └─3*[{plasma-desktop}]
        ├─polkit-kde-auth───{polkit-kde-aut}
        ├─polkitd───4*[{polkitd}]
        ├─preload
        ├─pulseaudio─┬─gconf-helper
        │            └─2*[{pulseaudio}]
        ├─racoon
        ├─rosa-launcher───3*[{rosa-launcher}]
        ├─rpcbind
        ├─rsyslogd───3*[{rsyslogd}]
        ├─rtkit-daemon───2*[{rtkit-daemon}]
        ├─s2u
        ├─sd_dummy───{sd_dummy}
        ├─sensord
        ├─smartd
        ├─smbd───smbd
        ├─speech-dispatch───{speech-dispatc}
        ├─sshd
        ├─start_kdeinit
        ├─systemd───(sd-pam)
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─udisksd───4*[{udisksd}]
        ├─upowerd───2*[{upowerd}]
        ├─usbmuxd
        ├─wpa_supplicant
        ├─xinetd
        └─xl2tpd
[roman@roman-TravelMate-8372 ~]$ 
Процесс rtorrent появился, родитель - konsole

Закрыл вкладку rtorrent в консоли

Код: Выделить всё

[roman@roman-TravelMate-8372 ~]$ pstree  
systemd─┬─ModemManager───2*[{ModemManager}]
        ├─NetworkManager─┬─dhclient
        │                └─3*[{NetworkManager}]
        ├─_plutorun─┬─_plutoload
        │           └─_plutorun───pluto─┬─_pluto_adns
        │                               └─3*[pluto]
        ├─accounts-daemon───2*[{accounts-daemo}]
        ├─acpid
        ├─akonadi_control─┬─3*[akonadi_agent_l───{akonadi_agent_}]
        │                 ├─akonadi_baloo_i───5*[cat]
        │                 ├─akonadi_maildis
        │                 ├─akonadi_mailfil
        │                 ├─akonadi_migrati
        │                 ├─akonadi_newmail
        │                 ├─akonadi_notes_a
        │                 ├─akonadiserver─┬─mysqld───40*[{mysqld}]
        │                 │               └─20*[{akonadiserver}]
        │                 └─{akonadi_contro}
        ├─at-spi-bus-laun───2*[{at-spi-bus-lau}]
        ├─atd
        ├─automount───2*[{automount}]
        ├─avahi-daemon───avahi-daemon
        ├─avahi-dnsconfd
        ├─baloo_file
        ├─bluetoothd
        ├─colord───2*[{colord}]
        ├─crond
        ├─cups-browsed
        ├─cupsd
        ├─2*[dbus-daemon]
        ├─dbus-launch
        ├─gam_server
        ├─gconfd-2
        ├─gvfs-gphoto2-vo───{gvfs-gphoto2-v}
        ├─gvfs-mtp-volume───{gvfs-mtp-volum}
        ├─gvfs-udisks2-vo───2*[{gvfs-udisks2-v}]
        ├─gvfsd───{gvfsd}
        ├─gvfsd-fuse───4*[{gvfsd-fuse}]
        ├─hddtemp
        ├─homerunviewer───2*[{homerunviewer}]
        ├─kactivitymanage───6*[{kactivitymanag}]
        ├─kded4───{kded4}
        ├─kdeinit4─┬─applet.py───{applet.py}
        │          ├─deja-dup-monito───2*[{deja-dup-monit}]
        │          ├─firefox─┬─kmozillahelper
        │          │         └─48*[{firefox}]
        │          ├─klauncher
        │          ├─ksmserver─┬─kwin───{kwin}
        │          │           └─{ksmserver}
        │          ├─mdkapplet───mdkapplet───consolehelper-g─┬─userhelper───urpmi.update───wget
        │          │                                         └─{consolehelper-}
        │          ├─parcellite───{parcellite}
        │          └─xsettings-kde───3*[{xsettings-kde}]
        ├─kdm─┬─X───2*[{X}]
        │     └─kdm───startkde───kwrapper4
        ├─kglobalaccel
        ├─klipper
        ├─kmix───{kmix}
        ├─knotify4───2*[{knotify4}]
        ├─konsole─┬─bash───ping
        │         ├─bash───pstree
        │         └─{konsole}
        ├─krunner───{krunner}
        ├─ksyndaemon
        ├─kuiserver
        ├─logger
        ├─mandi
        ├─mdadm
        ├─nmbd
        ├─nscd───9*[{nscd}]
        ├─ntpd
        ├─openl2tpd
        ├─plasma-desktop─┬─ksysguardd
        │                └─3*[{plasma-desktop}]
        ├─polkit-kde-auth───{polkit-kde-aut}
        ├─polkitd───4*[{polkitd}]
        ├─preload
        ├─pulseaudio─┬─gconf-helper
        │            └─2*[{pulseaudio}]
        ├─racoon
        ├─rosa-launcher───3*[{rosa-launcher}]
        ├─rpcbind
        ├─rsyslogd───3*[{rsyslogd}]
        ├─rtkit-daemon───2*[{rtkit-daemon}]
        ├─s2u
        ├─sd_dummy───{sd_dummy}
        ├─sensord
        ├─smartd
        ├─smbd───smbd
        ├─speech-dispatch───{speech-dispatc}
        ├─sshd
        ├─start_kdeinit
        ├─systemd───(sd-pam)
        ├─systemd-journal
        ├─systemd-logind
        ├─systemd-udevd
        ├─udisksd───4*[{udisksd}]
        ├─upowerd───2*[{upowerd}]
        ├─usbmuxd
        ├─wpa_supplicant
        ├─xinetd
        └─xl2tpd
[roman@roman-TravelMate-8372 ~]$ 
Процесса rtorrent - нет.
Это явно показывает на его ручное включение/выключение.
На форуме synology дано такая инструкция

Код: Выделить всё

7. Устанавливаем rTorrent и необходимые пакеты для него.
[code]
ipkg install rtorrent screen
Создаем каталог session:

Код: Выделить всё

mkdir -p /opt/share/torrent/session/

Создаем каталог logs:

Код: Выделить всё

mkdir /opt/var/log/
Редактируем конфигурационный файл rtorrent (он расположен в /opt/etc/rtorrent.conf)
Для редактирования можно воспользоваться возможностями Midnight Commander или сделать это встроенным редактором VI.
Хочу напомнить, что встроенный редактор работает не так как обычный на ПК.
Открываем файл для редактирования:

Код: Выделить всё

vi /opt/etc/rtorrent.conf
Стрелками переходим на последнюю строчку в ее конец справа и нажимаем один раз на кнопку "i" на английской раскладке. Мы перешли в режим редактирования.
Теперь нажимаем один раз стрелку вправо и Enter. Перешли на следующую строчку. Теперь вставляем эту сточку:

Код: Выделить всё

scgi_port = 127.0.0.1:5050
Теперь находим строчку с диапазоном портов, с которым будет работать rTorrent. Выглядит она так:

Код: Выделить всё

# Port range for listening
port_range = 6881-6889
(меняем порты на те, которые у Вас проброшены в роутере. ).
После окончания редактирования нажимаем один раз кнопку ESC , набираем :wq и жмем Enter для сохранения файла.

Редактируем файл S99rtorrent, который расположен в /opt/etc/init.d/S99rtorrent.
Пишем:

Код: Выделить всё

vi /opt/etc/init.d/S99rtorrent
Находим строчку #dirlayout="RTORRENT_DEFAULT" (7-я строчка сверху) и после нее ставим с новой строки:

Код: Выделить всё

dirlayout=CUSTOM
Теперь в этом же файле нужно изменить функцию checkcnfg() . Она находится на 89 строчке.
В "теле" функции нужно закоментировать (добавить в начале строки символ #) все строчки кроме одной. Должно получиться так:

Код: Выделить всё

#for i in `echo "$PATH" | tr ':' '\n'`; do
#    if [ -f $i/$NAME ]; then
        exists=1
#        break
#    fi
#done
Файл не закрываем, это еще не все. Переходим к фнукции d_start() - 114 строчка.
В "теле" функции несколько строчек, нам нужны только те которые начинаются со слов "su -c". Ставим значок # в начале каждой строки. Тоесть закоменируем их.
Теперь в этой функции добавляем новую строчку:

Код: Выделить всё

su -c "screen -dmS ${srnname} rtorrent ${options} 2>$logfile"
Должно получиться примерно так:

Код: Выделить всё

d_start() {
  [ -d "${base}" ] && cd "${base}"

  stty stop undef && stty start undef
#  su -c "screen -ls | grep -sq "\.${srnname}[[:space:]]" " ${user} || su -c "sc
  # this works for the screen command, but starting rtorrent below adopts screen
  # even if it is not the screen session we started (e.g. running under an undes
  #su -c "screen -ls | grep -sq "\.${srnname}[[:space:]]" " ${user} || su -c "sg
#  su -c "screen -S "${srnname}" -X screen rtorrent ${options} 2>&1 1>/dev/null"
  su -c "screen -dmS ${srnname} rtorrent ${options} 2>$logfile"
}

С редактированием файла закончили, сохраняем изменения в файле, идем дальше.

Перезагружаем rTorrent:

Код: Выделить всё

/opt/etc/init.d/S99rtorrent restart

Можно проверить что rTorrent работает, набираем строчку:

Код: Выделить всё

screen -r
Если все ок, на экране будет "текстовый" вариант торрент-клиента. Чтобы из него выйти нужно нажать CTRL+A+D. [/code]
Но на synology нет sustemd :) . При этом через init.d - он, только, перезапускается. То есть он при установке включается и работает. А на ноутбуке не хочет.
Rosa 2021.1 Fresh KDE5 x64-86 (HP ProBook 440 G4 (y7z81ea))

Аватара пользователя
slavyanix
Сообщения: 888
Зарегистрирован: 04 авг 2012, 20:05
Operating system: Rosa Fresh R10

Re: Автостарт/стоп rtorrent при запуске системы

Сообщение slavyanix » 01 дек 2014, 20:31

ох и задали же вы задачку. я еще не настолько хорошо освоил системд. придется почитать маны. но думаю есть способ создать скрипт запуска. посмотрю как оформиь свой .service файл. вообще это может делать crond тем более в системе он запущен и надо только добавить свой скрипт запуска и указать крону о его существовании. но он зараза может тольколибо один раз запустить либо запустить еще одну копию потом. он не может проверить саму программу. только если не указать к запуску через промежуток времени еще один самописный скрипт в котором все это будет. я думаю проще заморочиться написанием своего .service файла для этого и просто его подключть на запуск. так как системд может отслеживать запущенные сервисы и в случае проблем останавливать и перезапускать. но честно говоря на данный момент я пока еще не освоил создание своих .service файлов и было бы быстрее чтоб помог кто то из разработчиков. поскольку хоть ситуация и в принципе не такая сложная, но нужно понимать как строится сервис файл. я пока не углублялся. хотя честно говоря довольно любопытен.)) хотя меня только что осенила идея . что если прописать запуск команды в уже существующем .service файле.

sokoloff
Сообщения: 156
Зарегистрирован: 05 ноя 2013, 20:28
Operating system: ROSA Desktop Fresh R1 64bit

Re: Автостарт/стоп rtorrent при запуске системы

Сообщение sokoloff » 01 дек 2014, 20:44

Галахов Роман писал(а):Хочу поставить rutorrent в Chroot ROSA на Synology DS 412+. Копаюсь потихоньку когда есть время. http://forum.rosalab.ru/viewtopic.php?f=11&t=4187
Даже включение/выключение в теории понял как делать (осталось протестировать как будет работать в реальности)
Теперь столкнулся с проблемой настройки Автостарт/стоп rtorrent при запуске/выключении системы. Вроде бы уже должно быть через systemd
А значит, примерно, так

Код: Выделить всё

systemctl stop rtorrent.service
systemctl start rtorrent.service
systemctl disable rtorrent.service
systemctl enable rtorrent.service
Но установив rtorrent на ноут (для теста) и проверив запуск через консоль
1.png
, я не нашел в службах "Настройки рабочего стола - Управление системными службами" что-то похожее на rtorrent.
Или до сих пор rtorrent не переведен на systemd и запускается скриптами типа

Код: Выделить всё

/etc/init.d/rtorrent start
?
Rtorrent не демон, это просто консольная программа. Сам он не имеет ни удаленного GUI, ни Web-морды, поэтому и нет штатных init скриптов или systemd service файлов.
Правда есть симпатичная морда от сторонних разработчиков http://www.wtorrent-project.org/ Народ прикручивает ее с помощью жвачки, палочек от мороженного и синей изоленты.
Т.к. rtorrent только консольная программа и не умеет демонизироваться, то для init-V используются костыли, его запускают через screen или tmux 1, 2
Systemd позволяет запускать обычные программы как демонов, но service файл придется писать самому http://vladimir-stupin.blogspot.ru/2013 ... rvice.html
Ну и отдельно поднимать web-сервер с wtorrent

Или не парить себе мозг и запустить transmission.

Аватара пользователя
VictorR2007
Сообщения: 7287
Зарегистрирован: 12 сен 2011, 13:00
Operating system: ROSA 2023.1

Re: Автостарт/стоп rtorrent при запуске системы

Сообщение VictorR2007 » 01 дек 2014, 20:46

Наверное проще добавить в rc.local строку
/etc/init.d/rtorrent start
чем делать скрипты для запуска.
Или попробовать через chkconfig.
Если конечно chkconfig сейчас правильно работает.

Аватара пользователя
slavyanix
Сообщения: 888
Зарегистрирован: 04 авг 2012, 20:05
Operating system: Rosa Fresh R10

Re: Автостарт/стоп rtorrent при запуске системы

Сообщение slavyanix » 01 дек 2014, 21:05

фишка в том что даже если мы запустим rtorrent любым методом, то не сможем проверить работает он или превратился в зомби. я так понял требуется запускать её на домашнем медиасервере. и тут важна возможность его автоматического контроля. так что придется делать костыль в виде .service файла или же писать 2 скрипта на bash для crond и давать ему команду на запуск при старте системы , а потом второй скрипт для проверки состояния процесса и его перезапуска в случае проблем. но вот чую что 2 способ сложнее. так что предложу разве что разобраться с сервис файлом. просто получаем сразу все что нужно.

sokoloff
Сообщения: 156
Зарегистрирован: 05 ноя 2013, 20:28
Operating system: ROSA Desktop Fresh R1 64bit

Re: Автостарт/стоп rtorrent при запуске системы

Сообщение sokoloff » 01 дек 2014, 21:22

Service файл не сложный, примерно такой

Код: Выделить всё

[Unit]
Description=RTorrent Server
After=network.target

[Service]
Type=forking
ExecStart=/usr/bin/tmux new-session -s rt -d rtorrent
ExecStop=/usr/bin/tmux kill-session -t rt
User=rtorrent                                                                                                                   
Group=rtorrent                                                                                                                  
                                                                                                                                
[Install]                                                                                                                       
WantedBy=multi-user.target
Пришлось использовать костыль из tmux, т.к. хоть systemd и может запускать программу как демона, но не предоставляет ей терминал и rtorrent валиться с сообщением "Error opening terminal: unknown". Мне казалось, что у systemd была опция предоставлять псевдотерминал, но я ее найти не могу, а может эта опция мне приснилось.
Вот тут народ это обсуждает:
https://forums.opensuse.org/showthread. ... D0%B2-12-3
https://bbs.archlinux.org/viewtopic.php?id=147118

Аватара пользователя
slavyanix
Сообщения: 888
Зарегистрирован: 04 авг 2012, 20:05
Operating system: Rosa Fresh R10

Re: Автостарт/стоп rtorrent при запуске системы

Сообщение slavyanix » 01 дек 2014, 21:33

ну так в чем проблема надо пробовать и смотреть вывод. сервис файл это же текст. копирнуть и обозвать как положено и кинут ксервис файлам и все. а там проверить запуск и вывод pstree глянуть потом. чтоб убедиться, да и systemctl тоже не помешает.

Аватара пользователя
Галахов Роман
Сообщения: 2349
Зарегистрирован: 26 фев 2012, 20:02
Operating system: Rosa R12.1 Fresh Plasma (HP ProBook 440 G4 (y7z81ea))
Откуда: Моск. обл. Волоколамск

Re: Автостарт/стоп rtorrent при запуске системы

Сообщение Галахов Роман » 01 дек 2014, 22:38

sokoloff писал(а):Rtorrent не демон, это просто консольная программа. Сам он не имеет ни удаленного GUI, ни Web-морды, поэтому и нет штатных init скриптов или systemd service файлов.
Правда есть симпатичная морда от сторонних разработчиков http://www.wtorrent-project.org/ Народ прикручивает ее с помощью жвачки, палочек от мороженного и синей изоленты.
Т.к. rtorrent только консольная программа и не умеет демонизироваться, то для init-V используются костыли, его запускают через screen или tmux 1, 2
Systemd позволяет запускать обычные программы как демонов, но service файл придется писать самому http://vladimir-stupin.blogspot.ru/2013 ... rvice.html
Ну и отдельно поднимать web-сервер с wtorrent

Или не парить себе мозг и запустить transmission.
Вообще, если полностью описать, ситуацию:
Есть NAS (Synology DS 412+ на Atom D2700, 2 Gb оперативки), на который полуофициально можно поставить, только transmission, но он не умеет раздавать, одновременно, больше одной закачки. Неофициально, паралельно основной ОС (DSM) ставят Вootstraps (IPKG) - и на него устанавливают rutorrent (c управлением через браузер удаленного ПК), web-сервера и прочее ПО. Этот вариант имеет большой минус. Разработчик недолюбливает Вootstraps, и при обновлении DSM часто Вootstraps перестает работать,а значит и установленные на нем приложениях.
Выход из этой ситуации лежит через установку rutorrent в chroot, в более 99% это Debian Chroot через debootstrap). Для тех кто пользуется Debian/Ubuntu все просто (консольные debian команды они знают хорошо). А для остальных? До знакомства с Rosabootstrap, и я потихоньку копался в Debian (а иначе было не осуществить перевод rutorrent на Chroot). У меня накопилось уже не мало ссылок на статьи по установке rutorrent в Debian. Да и с ним, немного проще - он не на systemd. Теперь работаю с Rosabootstrap, параллельно, пишу/шлифую инструкцию по своим фактическим действиям: (многое - перенос с Debian на ROSA)
Пока выходит вот, что: Создание ROSA-бутстрапа для Synology DS
В этой главе, действия происходят на машине под управлением ROSA Linux
1)В чистую папку cкачать и распаковать архив с актуальными скриптами (в консоли):

$ wget https://abf.io/soft/rosabootstrap/archi ... ter.tar.gz
$ tar xzvf rosabootstrap-master.tar.gz
$ cd rosabootstrap-master

2) sudo ./rosabootstrap -d -a x86_64 -v rosa -c rosa -m http://mirror.rosalab.ru/rosa/rosa2014. ... in/release
Вот и все — после завершения работы скрипта с приведенными выше параметрами, у вас должна появиться директория ROSA

3)Архивируем полученный бутстрап:
sudo tar -czf rosa.tar.gz rosa

4) Копируем его на хранилище любым способом, по ftp, ssh, smb или через "флешку".

Установка и запуск собранного ROSA-бутстрапа
С этого места, все действия идут на Disk Station. Переносим наш архив туда, где будем разворачивать ROSA, желательно на зеркальный массив..

1. В нашем случае, установку выполняем на /volume1
cd /volume1/

gzip -c -d rosa.tar.gz | tar -xf -


2. Итак, ROSA почти готовa, осталось подготовить почву для пакетов - то есть прописать DNS сервера и забиндить ну хотя бы procfs, для старта файловой системы ROSA:

cp /etc/resolv.conf rosa/etc/

hostname > rosa/etc/hostname

mount -o bind /proc rosa/proc

3. Сделаем alias

alias rosa="cd /volume1/rosa && chroot ./ /bin/bash"

Автовключение/автостоп Chroot при запуске/выключении DSM (протестировать)
1. Через mc положить файлы скриптов S01rosa.sh K01rosa.sh в папку /usr/syno/etc/rc.d и сделать chmod 755 и chmod +x
С содержанием:
S01rosa.sh

#!/bin/sh
#
# Define where is the chroot on filesystem
CHROOT=/volume1/rosa
#
# local necessary
mount -o bind /dev $CHROOT/dev
mount -o bind /proc $CHROOT/proc
mount -o bind /dev/pts $CHROOT/dev/pts
mount -o bind /sys $CHROOT/sys
#
mkdir /volume1/rosa/media/volume1/
mount -o bind /volume1/ /volume1/rosa/media/volume1/ # <- Выход в папки DS
#

cp /etc/resolv.conf $CHROOT/etc/resolv.conf
cp /etc/hosts $CHROOT/etc/hosts

chroot $CHROOT /usr/bin/env PATH=/bin:/usr/bin:/sbin:/usr/sbin, /bin/bash

K01rosa.sh

#!/bin/sh
#
# Define where is the chroot on filesystem
CHROOT=/volume1/rosa
#
# local necessary
unmount -o bind /dev $CHROOT/dev
unmount -o bind /proc $CHROOT/proc
unmount -o bind /dev/pts $CHROOT/dev/pts
unmount -o bind /sys $CHROOT/sys
unmount -o bind /volume1/ /volume1/rosa/media/volume1/
#
Или в консоли создать, например:
cd /usr/syno/etc/rc.d
touch S01rosa.sh
chmod 755 S01rosa.sh
chmod +x S01rosa.sh
vi S01rosa.sh - прописать вышеуказанный код

Теперь, что б зайти в ROSA нам достаточно набрать команду:
rosa

3. Итак, мы внутри ROSA в папке /volume1/rosa
Добаим репозитории urpmi.addmedia --distrib http://mirror.rosalab.ru/rosa/rosa2012. ... ry/x86_64/
Обновим базу пакетов RPM urpmi.update updates
Обновимся urpmi --auto-select --auto-update


1) Буду ставить rutorrent на базе apache или lighttpd в зависимости от того насколько сложно будет сделать проброс портов из chroot на ip адрес хостовой машины.
И в связи с тем, что ROSA перешла на Systemd, возник вопрос - переведен ли rtorrent на Systemd или нет, и ,соответственно, с помощью чего осуществятся управлением запуска/остановки rtorrent при включении/выключении системы - куда копать: в сторону init скриптов (что для меня проще) или systemd?
Как я понял из вашего поста, rtorrent не завязан на systemd, а значит можно пробовать задействовать инструкцию от Debian

Код: Выделить всё

Настройка автозагрузки rTorrent

Для того, чтобы rTorrent автоматически запускался при старте машины нужно выполнить несколько несложных действий. Вначале, установим screen, необходимый для обеспечения работы torrent клиента в фоне:

# aptitude install screen

Затем загрузим стартовый скрипт:

# cd /etc/init.d/
# wget http://libtorrent.rakshasa.no/raw-attachment/wiki/RTorrentCommonTasks/rtorrentInit.sh

Редактируем файл и указываем имя пользователя от которого будет запускаться rTorrent:

    user="user"


Делаем файл исполняемым:

# chmod +x rtorrentInit.sh

Задаем владельцем файла системного пользователя root:

# chown root:root rtorrentInit.sh

Включаем «автозагрузку»:

# update-rc.d rtorrentInit.sh defaults

Все, теперь демон можно запустить выполнив вот такую команду:

# /etc/init.d/rtorrentInit.sh start

Теперь, во время каждой загрузки машины, будет автоматически запускаться и наш torrent клиент.
Или также как и автовключение/автостоп самого Chroot при запуске/выключении DSM.
Думаю, вопрос решен.
Rosa 2021.1 Fresh KDE5 x64-86 (HP ProBook 440 G4 (y7z81ea))

Ответить

Вернуться в «Обсуждение ROSA Fresh R4 - R8 (платформа 2014.1)»