使用的工具——MobaXterm

中文版GitHub地址——点击

前置文章——让群晖可以和其他linux系统一样ssh后台查看到所有文件(可以不看)

前置文章——修改群晖最大连接数(必看)

需求文件(点击文件名下载)——rlimit

原因

linux系统有一个最大文件打开数,当应用达到最大文件打开数后,再打开文件就会报too many open file

TR提示可能是too many open file 也可能 no file descriptors available

对于一般的程序,我们只需要在网上找到当前系统的修改方法修改即可,但是对于 Transmission 这个BT来说它不行

原因如下,Transmission这个东西,在程序启动后,会自动设置自己的Soft Limit为1024,覆盖掉我们自己修改的limit上限,这就导致在做种五六千个以上(真实文件种子,非多站点辅种达到的五六千个,可能更多)时,Transmission在向磁盘写入种子数据时报错,即上图的 Unable to save resume file,或者在你大量下载时报 too many open file

使用的工具——MobaXterm

输入

ps -ef |grep transmission-daemon

查看tr的进程ID

此处为21049(每个人都不一样,这个ID是需要的)

ps -ef |grep transmission-daemon

输入cat /proc/进程ID/limits

我这边为cat /proc/21049/limits

cat /proc/进程ID/limits

可以看到open files为1024

对于bt,pt而言是不够的

首先将文件 rlimit 下载下来放入群晖的任意文件夹内

我放入的是/volume1/test/文件夹内

然后点击

控制面板——任务计划——新增——计划的任务——用户定义的脚本

名称随便写

账号为root

点击计划

修改为一分钟触发一次

点击任务设置

输入以下内容

APP_NAME=transmission-daemon

PID=`ps -ef | grep -v grep | grep transmission-daemon | awk '{print $2}'`

if [ "$PID" != "" ]

then

/volume1/test/rlimit $PID

fi

/volume1/test/rlimit为你自己rlimit文件存放路径

APP_NAME=transmission-daemon
PID=`ps -ef | grep -v grep | grep transmission-daemon | awk '{print $2}'`
if [ "$PID" != "" ]
then
/volume1/test/rlimit $PID
fi

点击保存输入密码提交运行

右键运行一次

回到MobaXterm

输入

ps -ef |grep transmission-daemon

查看tr的进程ID

此次为21049

ps -ef |grep transmission-daemon

输入cat /proc/进程ID/limits

我这边为cat /proc/21049/limits

cat /proc/进程ID/limits

可以看到已经生效了

此方法也适合qb

qb用户自定义指令为

APP_NAME=qbittorrent-nox

PID=`ps -ef | grep -v grep | grep qbittorrent-nox | awk '{print $2}'`

if [ "$PID" != "" ]

then

/volume1/test/rlimit $PID

fi