自由屋推书网—热门的小说推荐平台!

你的位置: 首页 > linux

群晖transmission报错"Unable to save resume file: Too many open files"解决方法

2022-03-17 14:14:32

群晖系统跟所有linux系统一样,有ulimit的限制,可以在群晖的ssh终端中敲入ulimit -n ,看到只有1024,这显然不够PT爱好者折腾的;

在网络上查了一圈资料,发现根本无解,群晖没有limits.conf配置文件,也不会从这边加载,也没有pam相关的so动态库;

尝试过在/etc/profile中键入 ulimit -n 65535,只适用于root用户,对普通登录用户依然是1024,群晖官方给出的答复是最大只能4096,所以如果保种不多的话,就采用这个方案吧,比较简单,以下是简单的命令:

vi /etc/profile
 
#最后一行加入
ulimit -n 4096
 
#配置生效,执行
source /etc/profile

但这个数量如果对保种,或者同时下载量过大的朋友完全不够用,下面还有一个变态的方法,就是用C程序动态的去更改进程的最大文件和socket数量,喜欢折腾朋友可以编译以下C程序:

#include <stdio.h>
#include <sys/time.h>
#include <sys/resource.h>
#include <sys/types.h>
 
int main(int argc, char** argv) {
    pid_t pid;
    struct rlimit new_limit;
    int result;
    if (argc < 2) {
        return 1;
    }
    pid = atoi(argv[1]);
    new_limit.rlim_cur = 60000;
    new_limit.rlim_max = 60000;
    result = prlimit(pid, RLIMIT_NOFILE, &new_limit, NULL);
    return result;
}

群晖不自带GCC编译器,需要自己折腾,比较麻烦,我这边已经编译好了相关的二进制程序,大家拿去可以直接用,使用方法如下:

进入nas的ssh终端,随便什么目录均可;
下载我编译好的程序,wget https://www.mopsky.com/rlimit
备用下载地址:
rlimit.rar
OneDrive网盘下载地址:http://piaoyun.online/s/软路由NAS/黑群晖(synology)/rlimit

更改rlimit程序的权限,chmod 777 rlimit
查找transmission的进程编号,ps -ef|grep trans,可以看到前面的数字即为进程编号;
使用rlimit工具对进程进行更改:./rlimit 进程编号
查看是否生效,cat /proc/您的进程编号/limits 文件,可以看到file相关的都变成了60000,至此大功告成。

编辑推荐

热门小说