Призрак
09-09-2011, 12:11
Здравствуйте Уважаемые участники дискуссии.
Решил я настроить FreeBSD 8.2 для закачки через торрент. Пробовал transmission, но он мне не понравился, после долгих поисков по сети я решил что мне больше подойдет rtorrent + WEB интерфейс (Я управляю сервером через SSH и мне нужнен доступ к rtorrent через WEB интерфейс). Приступил к установке и настройке, но столкнулся с большими трудностями - переворошил огромное количество статей, в которых невнятно написано про сам процесс установки и настройки, в итоге у меня ничего не получилось. Есть 2 проблемы:
1. Пользователь, от которого будет запускаться rtorrent. В одной статье написано, что создавать его надо с параметром /sbin/nologin (но тогда я не знаю откуда будет подгружаться конфигурационный файл .rtorrent.rc, ведь он должен быть в домашней директории пользователя!). В другой статье написано о том, что создавать пользователя нужно с параметром /bin/sh и с домашней директорией, а также с паролем. В итоге при запуске FreeBSD я получаю сообщение su: unknown login:rtorrent и rtorrent даже не запускается.
2. Скрипт автозапуска rtorrent - я перепробовал несколько вариантов. Ни один из них не работает нормально, один запускает rtorrent при загрузке системы, но если rtorrent слетает или я по каким либо причинам его останавливаю он больше не запускается. Второй скрипт просто тупо пишет в лог что остановил/стартанул rtorrent но rtorrent все равно не запускается даже при загрузке системы. И вообще я не понимаю зачем в скрипте указывать директории, они указываются в файле .rtorrent.rc
2.1. Скрипт №1:
#!/bin/sh
#
#
# PROVIDE: rtorrent
# REQUIRE: LOGIN
# KEYWORD: shutdown
. /etc/rc.subr
name="rtorrent"
rcvar=`set_rcvar`
load_rc_config $name
: ${rtorrent_enable="NO"}
: ${rtorrent_downloads="/usr/local/rtorrent/downloads"}
: ${rtorrent_sessions="/usr/local/rtorrent/sessions"}
: ${rtorrent_scgi_port=""}
: ${rtorrent_encoding_list="UTF-8;cp1251;koi8-r"}
: ${rtorrent_args=""}
: ${rtorrent_user="rtorrent"}
: ${rtorrent_autoload_dir=""}
command="/usr/local/bin/rtorrent"
screen="/usr/local/bin/screen"
rtorrent_args="-d ${rtorrent_downloads} -s ${rtorrent_sessions} ${rtorrent_args}"
[ -n "${rtorrent_autoload_dir}" ] && rtorrent_args="-O schedule='watch_directory,5,5,load_start=${rtorrent_autoload_dir}' ${rtorrent_args}"
[ -n "${rtorrent_scgi_port}" ] && rtorrent_args="-O scgi_port='${rtorrent_scgi_port}' ${rtorrent_args}"
[ -n "${rtorrent_encoding_list}" ] && rtorrent_args="-O encoding_list='${rtorrent_encoding_list}' ${rtorrent_args}"
start_cmd="echo Starting ${name}.; su -m ${rtorrent_user} -c \"${screen} -A -m -d -S rtorrent ${command} ${rtorrent_args}\""
run_rc_command "$1"
2.2. Скрипт №2
#!/bin/sh
#
# rtorrent RCng startup script
# by Emanuele Cipolla (mail at emanuelecipolla dot net)
# Shamelessly ripped off the aMule startup script by Gabriele Cecchetti (amule.org forum)
#
# PROVIDE: rtorrent
# REQUIRE: NETWORKING SERVERS
# BEFORE: DAEMON
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf to enable rtorrent at startup
# rtorrent (bool): Set to "NO" by default.
# Set it to "YES" to enable rtorrent
# rtorrent_user (str): Set to user running rtorrent
# (default 'p2p')
# rtorrent_home (str): Set to home directory of user running rtorrent
# (default /home/${rtorrent_user})
. /etc/rc.subr
name="rtorrent"
rcvar=`set_rcvar`
load_rc_config $name
[ -z "$rtorrent_enable" ] && rtorrent_enable="NO"
[ -z "$rtorrent_user" ] && rtorrent_user="p2p"
[ -z "$rtorrent_home" ] && rtorrent_home="/home/${rtorrent_user}"
required_dirs=${rtorrent_home}
required_files="${rtorrent_home}/.rtorrent.rc"
start_cmd="${name}_start"
stop_cmd="${name}_stop"
rtorrent_start()
{
if [ ! -f /var/run/${name}.run ]
then
cd ${rtorrent_home}
su ${rtorrent_user} -c "/usr/local/bin/screen -dmS rtorrent_init /usr/local/bin/rtorrent"
touch /var/run/${name}.run
echo "Started ${name}."
echo `date` : "Started ${name}." >> /var/log/${name}.log
else
echo "${name} seems to be already running -- remove /var/run/${name}.run manually if needed."
fi
}
rtorrent_stop()
{
if [ -f /var/run/${name}.run ]
then
killall -INT $(echo -n 'ps aux | grep rtorrent | grep -v rtorrent_init') 2>>/var/log/${name}.log >>/var/log/${name}.log
rm -f /var/run/${name}.run
echo "Stopped ${name}."
echo `date` : "Stopped ${name}." >> /var/log/${name}.log
else
echo "${name} doesn't seem to be running -- create /var/run/${name}.run if needed."
fi
}
run_rc_command "$1"
Разумеется, в скриптах я ставил своего созданного пользователя и пути к папкам.
Также в rc.conf добавлены следующие строчки:
rtorrent_enable="YES"
rtorrent_scgi_port="127.0.0.1:5000
А так в Apache модуль scgi подгружен, вход через WEB интерфейс осуществляется с паролем, но в логе WEB интерфейса написано:
Нет связи с rTorrent. Проверьте, запущен ли он. Проверьте, что параметры $scgi_port и $scgi_host в файле config.php совпадают со значением переменной scgi_port в файле конфигурации rTorrent.
При этом то, что там написано все на самом деле правильно настроено, проверял 10 раз. все равно бесполезно, команда sockstat | grep rtorrent ничего не показывает.
Помогите пожалуйста решить проблему, кроме того, я слышал, что rtorrent можно настроить на подключение через UNIX Socket но опять же статьи в Интернете невнятные. Видать разучились "профессионалы" хорошие статьи писать, у них на все один ответ - man (название) и все.
Решил я настроить FreeBSD 8.2 для закачки через торрент. Пробовал transmission, но он мне не понравился, после долгих поисков по сети я решил что мне больше подойдет rtorrent + WEB интерфейс (Я управляю сервером через SSH и мне нужнен доступ к rtorrent через WEB интерфейс). Приступил к установке и настройке, но столкнулся с большими трудностями - переворошил огромное количество статей, в которых невнятно написано про сам процесс установки и настройки, в итоге у меня ничего не получилось. Есть 2 проблемы:
1. Пользователь, от которого будет запускаться rtorrent. В одной статье написано, что создавать его надо с параметром /sbin/nologin (но тогда я не знаю откуда будет подгружаться конфигурационный файл .rtorrent.rc, ведь он должен быть в домашней директории пользователя!). В другой статье написано о том, что создавать пользователя нужно с параметром /bin/sh и с домашней директорией, а также с паролем. В итоге при запуске FreeBSD я получаю сообщение su: unknown login:rtorrent и rtorrent даже не запускается.
2. Скрипт автозапуска rtorrent - я перепробовал несколько вариантов. Ни один из них не работает нормально, один запускает rtorrent при загрузке системы, но если rtorrent слетает или я по каким либо причинам его останавливаю он больше не запускается. Второй скрипт просто тупо пишет в лог что остановил/стартанул rtorrent но rtorrent все равно не запускается даже при загрузке системы. И вообще я не понимаю зачем в скрипте указывать директории, они указываются в файле .rtorrent.rc
2.1. Скрипт №1:
#!/bin/sh
#
#
# PROVIDE: rtorrent
# REQUIRE: LOGIN
# KEYWORD: shutdown
. /etc/rc.subr
name="rtorrent"
rcvar=`set_rcvar`
load_rc_config $name
: ${rtorrent_enable="NO"}
: ${rtorrent_downloads="/usr/local/rtorrent/downloads"}
: ${rtorrent_sessions="/usr/local/rtorrent/sessions"}
: ${rtorrent_scgi_port=""}
: ${rtorrent_encoding_list="UTF-8;cp1251;koi8-r"}
: ${rtorrent_args=""}
: ${rtorrent_user="rtorrent"}
: ${rtorrent_autoload_dir=""}
command="/usr/local/bin/rtorrent"
screen="/usr/local/bin/screen"
rtorrent_args="-d ${rtorrent_downloads} -s ${rtorrent_sessions} ${rtorrent_args}"
[ -n "${rtorrent_autoload_dir}" ] && rtorrent_args="-O schedule='watch_directory,5,5,load_start=${rtorrent_autoload_dir}' ${rtorrent_args}"
[ -n "${rtorrent_scgi_port}" ] && rtorrent_args="-O scgi_port='${rtorrent_scgi_port}' ${rtorrent_args}"
[ -n "${rtorrent_encoding_list}" ] && rtorrent_args="-O encoding_list='${rtorrent_encoding_list}' ${rtorrent_args}"
start_cmd="echo Starting ${name}.; su -m ${rtorrent_user} -c \"${screen} -A -m -d -S rtorrent ${command} ${rtorrent_args}\""
run_rc_command "$1"
2.2. Скрипт №2
#!/bin/sh
#
# rtorrent RCng startup script
# by Emanuele Cipolla (mail at emanuelecipolla dot net)
# Shamelessly ripped off the aMule startup script by Gabriele Cecchetti (amule.org forum)
#
# PROVIDE: rtorrent
# REQUIRE: NETWORKING SERVERS
# BEFORE: DAEMON
# KEYWORD: shutdown
#
# Add the following lines to /etc/rc.conf to enable rtorrent at startup
# rtorrent (bool): Set to "NO" by default.
# Set it to "YES" to enable rtorrent
# rtorrent_user (str): Set to user running rtorrent
# (default 'p2p')
# rtorrent_home (str): Set to home directory of user running rtorrent
# (default /home/${rtorrent_user})
. /etc/rc.subr
name="rtorrent"
rcvar=`set_rcvar`
load_rc_config $name
[ -z "$rtorrent_enable" ] && rtorrent_enable="NO"
[ -z "$rtorrent_user" ] && rtorrent_user="p2p"
[ -z "$rtorrent_home" ] && rtorrent_home="/home/${rtorrent_user}"
required_dirs=${rtorrent_home}
required_files="${rtorrent_home}/.rtorrent.rc"
start_cmd="${name}_start"
stop_cmd="${name}_stop"
rtorrent_start()
{
if [ ! -f /var/run/${name}.run ]
then
cd ${rtorrent_home}
su ${rtorrent_user} -c "/usr/local/bin/screen -dmS rtorrent_init /usr/local/bin/rtorrent"
touch /var/run/${name}.run
echo "Started ${name}."
echo `date` : "Started ${name}." >> /var/log/${name}.log
else
echo "${name} seems to be already running -- remove /var/run/${name}.run manually if needed."
fi
}
rtorrent_stop()
{
if [ -f /var/run/${name}.run ]
then
killall -INT $(echo -n 'ps aux | grep rtorrent | grep -v rtorrent_init') 2>>/var/log/${name}.log >>/var/log/${name}.log
rm -f /var/run/${name}.run
echo "Stopped ${name}."
echo `date` : "Stopped ${name}." >> /var/log/${name}.log
else
echo "${name} doesn't seem to be running -- create /var/run/${name}.run if needed."
fi
}
run_rc_command "$1"
Разумеется, в скриптах я ставил своего созданного пользователя и пути к папкам.
Также в rc.conf добавлены следующие строчки:
rtorrent_enable="YES"
rtorrent_scgi_port="127.0.0.1:5000
А так в Apache модуль scgi подгружен, вход через WEB интерфейс осуществляется с паролем, но в логе WEB интерфейса написано:
Нет связи с rTorrent. Проверьте, запущен ли он. Проверьте, что параметры $scgi_port и $scgi_host в файле config.php совпадают со значением переменной scgi_port в файле конфигурации rTorrent.
При этом то, что там написано все на самом деле правильно настроено, проверял 10 раз. все равно бесполезно, команда sockstat | grep rtorrent ничего не показывает.
Помогите пожалуйста решить проблему, кроме того, я слышал, что rtorrent можно настроить на подключение через UNIX Socket но опять же статьи в Интернете невнятные. Видать разучились "профессионалы" хорошие статьи писать, у них на все один ответ - man (название) и все.