日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

Aria2Android 免root,Linux Bash脚本:在本地机上部署用户自用aria2服务

發布時間:2024/3/24 linux 50 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Aria2Android 免root,Linux Bash脚本:在本地机上部署用户自用aria2服务 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

說明

aria2是一個功能豐富的下載器,但它是命令行程序,不符合多數人的胃口。

現有的aria2圖形界面客戶端(如webui-aria2、AriaNg、YAAW等)都是RPC客戶端,為了使用這種客戶端,需要讓aria2以特殊的后臺服務模式運行。

為了建立用戶本地自用的aria2后臺服務,在Linux下需要編寫systemd服務配置文件放到目錄~/.config/systemd/user下,并在其中指定aria2的命令行參數,當參數很多時,又得編寫aria2的配置文件。

下面的腳本就是為了把這一過程自動化,只需以普通用戶身份(無需root權限)運行腳本,就能讓aria2服務在本機上跑起來,并且以后開機自啟動。不想要的時候,加參數undeploy就能卸載這個服務。

如果想要在服務器上部署aria2,還要涉及SSL證書等更加復雜的問題,加上筆者目前沒有這個需求,所以略去不提。

#! /bin/bash

#### 文件名:deploy_aria2_rpc_service

#### 建立本地用戶自用aria2后臺服務

#### 使用方法:

#### ./deploy_aria2_rpc_service (不帶參數運行) 為本用戶建立并啟動aria2后臺服務

#### ./deploy_aria2_rpc_service status 查詢服務狀態

#### ./deploy_aria2_rpc_service undeploy 撤銷已經建立的服務

function create_dir_if_nonexist

# 如果參數所指定目錄不存在,則建立之;接受任意個數參數

{

for i in "$@"; do

if [ ! -d "$i" ]; then

mkdir -p "$i"

fi

done

}

function create_aria2_daemon_conf

# 建立aria2配置文件

# 參數 $1: 主配置文件名

# 參數 $2: the dir to create the configs in

{

create_dir_if_nonexist "$2"

cd "$2"

# 在下面編輯你想要的aria2參數,但不要更改預設置的dht和session文件路徑

(

cat <

#### Basic Options ####

dir=${HOME}/Downloads

continue=true

#### HTTP/FTP/SFTP Options ####

#### BT/metalink Options ####

dht-file-path=`pwd`/dht/dht4.dat

dht-file-path6=`pwd`/dht/dht6.dat

#### RPC Options ####

enable-rpc=true

rpc-listen-all=true

rpc-listen-port=6800

rpc-secret=Your_Secret_Token

#### Misc. Options ####

daemon=true

save-session=`pwd`/session/aria2_session

input-file=`pwd`/session/aria2_session

HereIsAria2ConfTemplate

) > "$1"

# 說明:出于安全考慮,這里沒有指定rpc-allow-origin-all=true,

# 那么在使用AriaNg或YAAW連接時,必須選擇WebSocket協議(ws://..),而不是http://..

create_dir_if_nonexist "session" "dht"

touch "session/aria2_session"

cd - >/dev/null

# 當aria2以daemon模式運行時,它讀取的配置文件都需有可執行權限

chmod -R o+rx "$2"

}

function register_aria2_user_service

# 建立用戶級aria2服務并使之自啟動

# 參數 $1: 服務配置文件名(不帶擴展名.service)

# 參數 $2: 對應的Aria2主配置文件的全路徑

{

create_dir_if_nonexist "${HOME}/.config/systemd/user"

cd "${HOME}/.config/systemd/user"

# 下面的內容不要隨意更改,除非你知道自己在干啥

local a='$MAINPID'

(

cat <

[Unit]

Description=Aria2 Daemon (Local, User)

Documentation=man:aria2c(1) http://aria2.github.io/manual/en/html/index.html

[Service]

Type=forking

ExecStart=/usr/bin/aria2c --conf-path="$2"

ExecReload=/bin/kill -HUP $a

Restart=on-failure

RestartSec=3s

[Install]

WantedBy=default.target

HereIsAria2UserServiceTemplate

) >"${1}.service"

systemctl --user daemon-reload

systemctl --user enable "${1}.service"

systemctl --user start "${1}.service"

cd - >/dev/null

}

function unregister_aria2_user_service

# 撤銷已經建立的aria2服務

# 參數 $1: 服務配置文件名(不帶擴展名.service)

{

cd "${HOME}/.config/systemd/user"

systemctl --user stop "${1}.service"

systemctl --user disable "${1}.service"

rm "${1}.service"

systemctl --user daemon-reload

cd - >/dev/null

}

# aria2ConfDir: aria2配置文件目錄,請勿指定為現有的目錄

aria2ConfDir="${HOME}/.config/aria2_conf.d"

aria2ConfFileName="aria2_daemon.conf"

serviceName="my_aria2_local"

if [ "$1" = "undeploy" ]; then

unregister_aria2_user_service "${serviceName}"

rm -rf ${aria2ConfDir}

elif [ "$1" = "status" ]; then

systemctl --user status "${serviceName}.service"

else

create_aria2_daemon_conf "${aria2ConfFileName}" "${aria2ConfDir}"

register_aria2_user_service "${serviceName}" "${aria2ConfDir}/${aria2ConfFileName}"

fi

總結

以上是生活随笔為你收集整理的Aria2Android 免root,Linux Bash脚本:在本地机上部署用户自用aria2服务的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。