Du kannst nicht mehr als 25 Themen auswählen Themen müssen entweder mit einem Buchstaben oder einer Ziffer beginnen. Sie können Bindestriche („-“) enthalten und bis zu 35 Zeichen lang sein.

132 Zeilen
3.8 KiB

vor 5 Jahren
vor 5 Jahren
vor 5 Jahren
vor 5 Jahren
vor 4 Jahren
vor 5 Jahren
vor 4 Jahren
vor 5 Jahren
vor 4 Jahren
vor 5 Jahren
vor 4 Jahren
vor 5 Jahren
vor 5 Jahren
vor 5 Jahren
vor 5 Jahren
vor 4 Jahren
vor 5 Jahren
vor 4 Jahren
vor 5 Jahren
vor 4 Jahren
vor 5 Jahren
vor 4 Jahren
vor 5 Jahren
vor 4 Jahren
vor 5 Jahren
vor 4 Jahren
vor 5 Jahren
vor 4 Jahren
vor 5 Jahren
vor 4 Jahren
  1. #!/usr/bin/env bash
  2. ### BEGIN INIT INFO
  3. # Provides: aria2 is a lightweight multi-protocol & multi-source command-line download utility.
  4. # Required-Start: $network $local_fs $remote_fs
  5. # Required-Stop: $network $local_fs $remote_fs
  6. # Default-Start: 2 3 4 5
  7. # Default-Stop: 0 1 6
  8. # Short-Description: aria2 is a lightweight multi-protocol & multi-source command-line download utility.
  9. # Description: Start or stop the Aria2
  10. ### END INIT INFO
  11. PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin:~/bin
  12. export PATH
  13. NAME="Aria2"
  14. NAME_BIN="aria2c"
  15. CONFIG_DIR="/root/.aria2c"
  16. CONFIG="${CONFIG_DIR}/aria2.conf"
  17. LOG="${CONFIG_DIR}/aria2.log"
  18. Green_font_prefix="\033[32m"
  19. Red_font_prefix="\033[31m"
  20. Green_background_prefix="\033[42;37m"
  21. Red_background_prefix="\033[41;37m"
  22. Font_color_suffix="\033[0m"
  23. Info="[${Green_font_prefix}信息${Font_color_suffix}]"
  24. Error="[${Red_font_prefix}错误${Font_color_suffix}]"
  25. RETVAL=0
  26. [[ ! -e ${CONFIG_DIR} ]] && {
  27. mv /root/.aria2 ${CONFIG_DIR}
  28. sed -i "s@/root/.aria2/@${CONFIG_DIR}/@" ${CONFIG}
  29. }
  30. check_running() {
  31. PID=$(ps -ef | grep "${NAME_BIN}" | grep -v "grep" | grep -v "aria2.sh" | grep -v "init.d" | grep -v "service" | awk '{print $2}')
  32. if [[ ! -z ${PID} ]]; then
  33. return 0
  34. else
  35. return 1
  36. fi
  37. }
  38. Read_config() {
  39. [[ ! -e ${CONFIG} ]] && echo -e "${Error} ${NAME} 配置文件不存在 !" && exit 1
  40. Download_dir=$(cat ${CONFIG} | grep -v '#' | grep "dir=")
  41. [[ ! -z "${Download_dir}" ]] && Download_dir=$(echo "${Download_dir}" | awk -F '=' '{print $2}')
  42. RPC_listen_port=$(cat ${CONFIG} | grep -v '#' | grep "rpc-listen-port=")
  43. [[ ! -z "${RPC_listen_port}" ]] && RPC_listen_port=$(echo "${RPC_listen_port}" | awk -F '=' '{print $2}')
  44. RPC_secret=$(cat ${CONFIG} | grep -v '#' | grep "rpc-secret=")
  45. [[ ! -z "${RPC_secret}" ]] && RPC_secret=$(echo "${RPC_secret}" | awk -F '=' '{print $2}')
  46. }
  47. View_Config() {
  48. Read_config
  49. IPV4=$(
  50. wget -qO- -t1 -T2 -4 ip.sb ||
  51. wget -qO- -t1 -T2 -4 ifconfig.io ||
  52. wget -qO- -t1 -T2 -4 www.trackip.net/ip
  53. )
  54. [[ -z "${IPV4}" ]] && IPV4="IPv4 地址检测失败"
  55. IPV6=$(
  56. wget -qO- -t1 -T2 -6 ip.sb ||
  57. wget -qO- -t1 -T2 -6 ifconfig.io ||
  58. wget -qO- -t1 -T2 -6 www.trackip.net/ip
  59. )
  60. [[ -z "${IPV6}" ]] && IPV6="IPv6 地址检测失败"
  61. [[ -z "${Download_dir}" ]] && Download_dir="/usr/local/aria2/"
  62. [[ -z "${RPC_listen_port}" ]] && RPC_listen_port="6800"
  63. [[ -z "${RPC_secret}" ]] && RPC_secret="无令牌密钥"
  64. clear
  65. echo -e "\nAria2 简单配置信息:\n
  66. IPv4 地址\t: ${Green_font_prefix}${IPV4}${Font_color_suffix}
  67. IPv6 地址\t: ${Green_font_prefix}${IPV6}${Font_color_suffix}
  68. RPC 端口\t: ${Green_font_prefix}${RPC_listen_port}${Font_color_suffix}
  69. RPC 密钥\t: ${Green_font_prefix}${RPC_secret}${Font_color_suffix}
  70. 下载目录\t: ${Green_font_prefix}${Download_dir}${Font_color_suffix}\n"
  71. }
  72. do_start() {
  73. check_running
  74. if [[ $? -eq 0 ]]; then
  75. echo -e "${Info} $NAME (PID ${PID}) 正在运行..." && exit 0
  76. else
  77. echo -e "${Info} $NAME 启动中..."
  78. ulimit -n 51200
  79. nohup aria2c --conf-path="${CONFIG}" >>"${LOG}" 2>&1 &
  80. sleep 2s
  81. check_running
  82. if [[ $? -eq 0 ]]; then
  83. View_Config
  84. echo -e "${Info} $NAME 启动成功 !"
  85. else
  86. echo -e "${Error} $NAME 启动失败 !"
  87. fi
  88. fi
  89. }
  90. do_stop() {
  91. check_running
  92. if [[ $? -eq 0 ]]; then
  93. kill -9 ${PID}
  94. RETVAL=$?
  95. if [[ $RETVAL -eq 0 ]]; then
  96. echo -e "${Info} $NAME 停止成功 !"
  97. else
  98. echo -e "${Error} $NAME 停止失败 !"
  99. fi
  100. else
  101. echo -e "${Info} $NAME 未运行"
  102. RETVAL=1
  103. fi
  104. }
  105. do_status() {
  106. check_running
  107. if [[ $? -eq 0 ]]; then
  108. View_Config
  109. echo -e "${Info} $NAME (PID $(echo ${PID})) 正在运行..."
  110. else
  111. echo -e "${Info} $NAME 未运行 !"
  112. RETVAL=1
  113. fi
  114. }
  115. do_restart() {
  116. do_stop
  117. do_start
  118. }
  119. case "$1" in
  120. start | stop | restart | status)
  121. do_$1
  122. ;;
  123. *)
  124. echo "使用方法: $0 { start | stop | restart | status }"
  125. RETVAL=1
  126. ;;
  127. esac
  128. exit $RETVAL