1-16.utorrent の変更点

Top > 1-16.utorrent
  • 追加された行はこの色です。
  • 削除された行はこの色です。
  • 1-16.utorrent へ行く。

utorrentのインストールと設定をこんどはきっちり残しておく。ほんとはaria2にするつもりだったのだが…。

*ダウンロード [#r467be87]
ダウンロードページからUbuntu13.04向けのパッケージをダウンロード
 wget http://download.ap.bittorrent.com/track/beta/endpoint/utserver/os/linux-x64-ubuntu-13-04 -O utserver.tar.gz

*インストール [#i91d4f33]
 tar xvf utserver.tar.gz -C /home/hoge/opt/
 sudo chown hoge:hoge -R /home/hoge/opt/utorrent-server-alpha-v3_3/
 sudo apt install libssl1.0.0 libssl-dev
 ln -s /opt/utorrent-server-alpha-v3_3/utserver /home/hoge/bin/utserver

*チェックのために一度立ち上げ [#oe65ae85]
 utserver -settingspath /home/hoge/opt/utorrent-server-alpha-v3_3/ &
サーバー上でウェブブラウザを立ち上げhttp://localhost:8080/gui にアクセス。admin/(パスワード空)でbasic認証。ギアアイコンで設定。GeneralにLanguage設定、日本語あり。他のマシンからhttp://鯖アドレス:8080/guiでも立ち上がることを確認する。

*多分最初にやるであろう設定の変更 [#d833165c]
-Language設定 in General
-user / password in WebUI
-Connection Port歯無し in WebUI
-Connection Port✕歯無し→鯖行くな in WebUI
-Bittorent Remote if you will use 以前使っていた登録名使えないんですよ。

*どう動かすかを考える [#u212d909]
utorrentをどのuserで動かすのか。Logやダウンロードしたものをどこに置くのか。決めておくこと。鯖と言えど自分しか触らないのだから、rootでも自分のuserアカウントでも好きにしたら良いけど、はっきり決めて覚えておく。自分のuserアカウントで起動。Logも自分のしようか。起動スクリプトもinit.dに置かないでlinux mintの「設定」→「自動起動するアプリ」使うか。それを考えて下の起動スクリプトを変更し、~/bin/utorrentとして保存する。 「自動起動するアプリ」での設定でも、/home/xxx/bin/utorrent start みたいに引数つけて起動もできている。「自動起動するアプリ」の設定で起動すると、自動ログインのユーザーの権限での起動となる。とするとインストール時のユーザーやgroupを見直す必要がある。ちゃんと計画練ろうね。


*起動スクリプト [#e923987d]
https://www.itzgeek.com/how-tos/linux/ubuntu-how-tos/utorrent-startup-script-run-utorrent-boot-ubuntu-14-04-14-10.html のを使用。/etc/init.dに置かずに自動起動するアプリで行う場合、インストール先のディレクトリのパーミッション等見直す必要がある。ちなみに、utorrent自体はrootで起動しても構わない。コントロールはwebinterfaceで行うので。

#geshi(bash,number){{
#!/bin/sh
### BEGIN INIT INFO
# Provides:          rtorrent_autostart 
# Required-Start:    $local_fs $remote_fs $network $syslog $netdaemons
# Required-Stop:     $local_fs $remote_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Short-Description: rtorrent script using screen(1)
# Description:       rtorrent script using screen(1) to keep torrents working withou t the user logging in
### END INIT INFO
#
#
#  Original source: http://forum.utorrent.com/viewtopic.php?id=88044
#
# uTorrent start stop service script
#
# copy to /etc/init.d
# run "update-rc.d utorrent defaults" to install
# run "update-rc.d utorrent remove" to remove
#
#
# version 2 improvments by:
# @author FanFan Huang ([email protected])
#
#
UTORRENT_PATH=/opt/utorrent-server-alpha-v3_3/ #where you extracted your utserver executable
LOGFILE=/opt/utorrent-server-alpha-v3_3/utorrent.log #must be a writable directory
USER=raj #any user account you can create the utorrent user if you like
GROUP=users
NICE=15
SCRIPTNAME=/etc/init.d/utorrent #must match this file name

DESC="uTorrent Server for Linux"
CHDIR=$UTORRENT_PATH
NAME=utserver
UT_SETTINGS=$UTORRENT_PATH
UT_LOG=$LOGFILE

DAEMON_ARGS="-settingspath ${UT_SETTINGS} -logfile ${UT_LOG}"
DAEMON=$CHDIR/$NAME
PIDFILE=/var/run/utorrent.pid
STOP_TIMEOUT=5
INIT_VERBOSE=yes

FAILURE=false

# Exit if the package is not installed
[ -x "$DAEMON" ] || exit 0

# Read configuration variable file if it is present
[ -r /etc/default/$NAME ] && . /etc/default/$NAME

# Load the VERBOSE setting and other rcS variables
. /lib/init/vars.sh

# Define LSB log_* functions.
# Depend on lsb-base (>= 3.0-6) to ensure that this file is present.
. /lib/lsb/init-functions

#
# Function that starts the daemon/service
#
do_start()
{
FAILURE=false
# Return
# 0 if daemon has been started
# 1 if daemon was already running
# 2 if daemon could not be started
# 3 if port bind failed
start-stop-daemon --start --nicelevel $NICE --quiet --make-pidfile --pidfile $PIDFILE --chuid $USER:$GROUP --chdir $CHDIR --background --exec $DAEMON --test > /dev/null
if [ "$?" = "1" ]; then
return 1
fi
start-stop-daemon --start --nicelevel $NICE --quiet --make-pidfile --pidfile $PIDFILE --chuid $USER:$GROUP --chdir $CHDIR --background --exec $DAEMON -- $DAEMON_ARGS
if [ "$?" != "0" ]; then
return 2
fi
#bind validation
while [ ! -e $LOGFILE ]; do
sleep 1 #Wait for file to be generated
done

######################## DISABLED ENABLE THIS SECTION IF YOU HAVE IPv6 HANGS WITH NO IPv6 Support ################
# while [ ! -n "$(cat $LOGFILE|grep 'IPv6 is installed')" ]; do
# #wait until utorrent has finished bootup (IPv6 MESSAGE is the last message)#
# sleep 1
# done

RESULT=$(cat $LOGFILE|grep 'bind failed')
if [ -n "$RESULT" ]; then
return 3
fi
return 0
}

#
# Function that stops the daemon/service
#
do_stop()
{
# Return
# 0 if daemon has been stopped
# 1 if daemon was already stopped
# 2 if daemon could not be stopped
# other if a failure occurred
start-stop-daemon --stop --quiet --retry=TERM/30/KILL/5 --pidfile $PIDFILE --name $NAME
RETVAL="$?"
if [ "$RETVAL" = 2 ]; then
return 2
fi
start-stop-daemon --stop --quiet --oknodo --retry=0/30/KILL/5 --exec $DAEMON
RETVAL="$?"
if [ "$RETVAL" = 2 ]; then
return 2
fi
#block process until server is completed shutting down fully
while [ -n "$(pidof "$NAME")" ]; do
sleep 1
done
# Many daemons don't delete their pidfiles when they exit.
rm -f $PIDFILE
rm -f $LOGFILE #we don't want to keep our logfile
return "$RETVAL"
}

#
# Function that sends a SIGHUP to the daemon/service
#
do_reload() {
#
# If the daemon can reload its configuration without
# restarting (for example, when it is sent a SIGHUP),
# then implement that here.
#
start-stop-daemon --stop --signal 1 --quiet --pidfile $PIDFILE --name $NAME
return 0
}

msg_start() {
case "$1" in
0|1)
if [ "$VERBOSE" != no ]; then
log_end_msg 0
fi
;;
2)
if [ "$VERBOSE" != no ]; then
log_end_msg 1
fi
;;
3)
if [ "$VERBOSE" != no ]; then
log_daemon_msg "Port bind failure detected uTorrent may have limited functionality please change the bind port and restart uTorrent"
log_end_msg 1
fi
;;
esac
}

msg_stop() {
case "$1" in
0|1)
if [ "$VERBOSE" != no ]; then
log_end_msg 0
fi
;;
*)
if [ "$VERBOSE" != no ]; then
log_daemon_msg "Failed to stop service exit status $STATUS"
log_end_msg 1
fi
esac
}

case "$1" in
start)
if [ "$VERBOSE" != no ]; then
log_daemon_msg "Starting $DESC"
fi
do_start
msg_start "$?"
;;
stop)
if [ "$VERBOSE" != no ]; then
log_daemon_msg "Stopping $DESC"
fi
do_stop
msg_stop "$?"
;;
status)
if [ -e "$PIDFILE" ]; then
PID=" PID:($(cat $PIDFILE))"
else
PID=""
fi
status_of_proc "$DAEMON" "uTorrent$PID"
if [ "$?" != "0" ]; then
exit $?
fi
;;
restart|force-reload)
#
# If the "reload" option is implemented then remove the
# 'force-reload' alias
#
log_daemon_msg "Restarting $DESC"
do_stop
STATUS="$?"
if [ "$STATUS" -ne 0 ] && [ "$STATUS" -ne 1 ]; then
log_daemon_msg "Could not stop exit status $STATUS"
log_end_msg 1
exit 1
fi
do_start
STATUS="$?"
case "$STATUS" in
0)
log_end_msg 0
;;
*)
log_daemon_msg "Restart failed start exist status $STATUS"
log_end_msg 1
esac
;;
log)
if [ -e "$LOGFILE" ]; then
LOG=$(cat $LOGFILE)
echo "$LOG"
else
echo "uTorrent is not running no active log file"
fi
;;

*)
echo "Usage: $SCRIPTNAME {start|stop|status|restart|force-reload|log}" >&2
exit 3
;;
esac
}}